php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.09.2010, 14:14  
Neuer Benutzer
 
Registriert seit: 27.08.2010
Beiträge: 6
PHP-Kenntnisse:
Anfänger
spiderguy befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Abfrage über 2 Variablen mit gleicher Priorität

Hallo,
ich habe folgende Abfrage:
PHP-Code:
$sql "SELECT * FROM tabelle  ORDER BY ADDDATE( `termin` , INTERVAL `intervall` DAY)"
Hier werden die Datensätze nach einem berechneten Datumswert (Format:0000-00-00, termin+intervall) sortiert.
Das funktioniert auch. Jetzt würde ich gerne nach einem zweiten Kriterium (datum) sortieren, allerdings mit GLEICHER Priorität.
D.h. nicht erst nach dem berechneten Termin und dann nach dem Datum, also so:
PHP-Code:
$sql "SELECT * FROM tabelle  ORDER BY ADDDATE( `termin` , INTERVAL `intervall` DAY), `datum`"
Sondern so, dass
PHP-Code:
ADDDATE( `termin` , INTERVAL `intervallDAY
und
PHP-Code:
`datum
in der Sortierung die gleiche Priorität haben.
Ich hoffe, ich habe mich verständlich ausgedrückt.

Vielen Dank im Voraus!
spiderguy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.09.2010, 14:21  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 298
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube nicht das das geht und irgendwas muss doch den Vorrang haben, was sollen denn da für Ergebnisse rauskommen und warum mit gleicher Priorität?
KarlEgon ist offline   Mit Zitat antworten
Alt 09.09.2010, 14:39  
Neuer Benutzer
 
Registriert seit: 27.08.2010
Beiträge: 6
PHP-Kenntnisse:
Anfänger
spiderguy befindet sich auf einem aufstrebenden Ast
Standard

Sowohl der berechnete Wert als auch der zweite Wert haben ja das Format 0000-00-00.

Jetzt möchte ich quasi dass nach diesen beiden Datumswerten "gleichberechtigt" sortiert wird.

Also z.B.
1. 2010-01-01 (berechneter Wert)
2. 2010-01-05 (datumswert)
3. 2010-01-08 (datumswert)
4. 2010-01-10 (berechneter Wert)

Also die Datensätze nach beiden Werten sortiert und die Ergebnisse "vermischt".
spiderguy ist offline   Mit Zitat antworten
Alt 09.09.2010, 14:46  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

du kannst beide Datumswerte (Datenwerte?) in einen Unix Timestamp umwandeln, addieren, und danach sortieren. Oder aber du nimmst den Maximalwert, sortierst danach absteigend, anschließend nimmst du den Minimalwert und sortierst danach ebenfalls absteigend.

Also etwa so:
ORDER BY (UNIX_TIMESTAMP(DATE_ADD(...)) + UNIX_TIMESTAMP(...)) DESC
bzw.
ORDER BY GREATEST(DATE_ADD(...), DATE_ADD(...)) DESC, LEAST(...) DESC

Edit: In deinem Fall sortierst du ASC.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 09.09.2010, 14:46  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von spiderguy Beitrag anzeigen
Sondern so, dass ADDDATE( `termin` , INTERVAL `intervall` DAY) und `datum` in der Sortierung die gleiche Priorität haben.
Ich hoffe, ich habe mich verständlich ausgedrückt.
Nein, nicht wirklich.

Was soll denn passieren, wenn die beiden Werte unterschiedlich sind?
Beispieldaten und gewünschtes Ergebnis wären vielleicht zum Verständnis hilfreich.

Vermutlich wirst du da mit einer Fallunterscheidung o.ä. rangehen müssen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 09.09.2010, 15:42  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

im Grunde sieht dein Ansinnen gerade bei Datum etwas eigenartig aus ....


wenn ich nach einer Datum-Spalte sortiere, erwarte ich eine Zeitliche Abfolge..

welchen Sinn soll dabei dein "berechnetes Datum" haben ? .. für mich läuft das entweder vom ältesten zum neuesten oder umgekehrt ? - dafür ist das order ja da ..

also wie sollen bei der Angabe deines Datums dann Werte behandelt werden, die Davor liegen?
eagle275 ist offline   Mit Zitat antworten
Alt 09.09.2010, 15:48  
Neuer Benutzer
 
Registriert seit: 27.08.2010
Beiträge: 6
PHP-Kenntnisse:
Anfänger
spiderguy befindet sich auf einem aufstrebenden Ast
Standard

Im Prinzip habe ich 2 Datumswerte (einen berechnet, einer so).
Ich möchte jetzt nach dem Datum sortieren, das älter ist, also mehr in der Vergangenheit liegt.

Etwa so in der Art:
PHP-Code:
$sql "SELECT * FROM db ORDER BY IF (datum>ADDDATE( `termin` , INTERVAL `intervall` DAY ), 'datum', ADDDATE( `termin` , INTERVAL `intervall` DAY )) ASC"
Bzw. einfacher ausgdrückt: Wenn Datum1>Datum2 dann nach Datum1 sortieren, ansonsten nach Datum2.
spiderguy ist offline   Mit Zitat antworten
Alt 09.09.2010, 15:53  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

öhm... entweder steh ich gerade ganz gewaltig auf dem sprichwörtlichen Schlauch .. oder du erklärst es sehr seltsam , was du willst

wie willst du denn eine Menge an verschieden Datum-Werten nach einem "Datum" sortieren ? was soll dabei rauskommen ?
eagle275 ist offline   Mit Zitat antworten
Alt 09.09.2010, 15:54  
Neuer Benutzer
 
Registriert seit: 27.08.2010
Beiträge: 6
PHP-Kenntnisse:
Anfänger
spiderguy befindet sich auf einem aufstrebenden Ast
Standard

Ich glaub das funktioniert so:

PHP-Code:
$sql "SELECT * FROM db ORDER BY IF (datum>ADDDATE( `termin` , INTERVAL `intervall` DAY ), 'datum', ADDDATE( `termin` , INTERVAL `intervall` DAY )) ASC"
Danke für Eure Hilfe!
spiderguy ist offline   Mit Zitat antworten
Alt 09.09.2010, 15:55  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

So sinnlos finde ich das Unterfangen nicht. Man stelle sich vor, es gibt ein Erstellungs- und ein Bearbeitungsdatum. Nun soll eben nach dem größten Datum sortiert werden.

Edit: 'datum' ist sicherlich falsch, du meinst `datum`
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage über 4 Tabellen um phpbb Forum nach Drupal umzuziehen Just Matt Datenbanken 6 29.08.2010 21:07
result Variablen von SQL verbinden vci PHP Tipps 2010 15 05.02.2010 19:09
Scriptsuche [Erledigt] SQL- Abfrage über 2 tabellen ejim Scriptbörse 1 17.07.2009 21:10
SQL abfrage mit variablen geht nicht (verzweifle) Puiscel Datenbanken 3 03.07.2009 15:05
[Erledigt] SQL Abfrage über 2 Tabellen, wenn eine davon leer ist Registrierer Datenbanken 13 18.05.2009 20:48
MySQL Abfrage über 5 Tabellen evtl. IF ghost120 Datenbanken 11 13.04.2009 20:00
SQL Abfrage über ein Inputfeld derfrager Datenbanken 6 20.02.2009 17:59
Variablen aus Formular über HTTPRequest übertragen -jan- JavaScript, Ajax und mehr 6 27.05.2008 14:08
[Erledigt] Abfrage erstelln über 3 Tabellen Datenbanken 4 26.04.2005 16:02
php Variablen in MySQL Abfrage verwenden (WHERE Bedingung) PHP Tipps 2005 20 20.04.2005 20:05
[Erledigt] Übergabe on Variablen über mehrere Seiten PHP Tipps 2005 13 01.02.2005 21:13
Richtige abfrage über id ! PHP Tipps 2004-2 7 10.11.2004 14:06
Abfrage über 3 Tabellen PHP Tipps 2004 3 31.07.2004 22:34
Mehrere Variablen über einen Link? medico PHP Tipps 2004 2 25.07.2004 22:24
Variablen über URL... NetLook PHP Tipps 2004 7 15.06.2004 08:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql abfrage mit 2 parametern, php mehrere variablen abfragen, sql abfrage wert zwei variablen, sql suche mit zwei variablen funktioniert nicht, php abfrage mit 2 parametern, sql anfrage select zwei variablen\, ajax sql abfrage datumsbereich, sql abfragen nach php variable ajax, sql order by nicht nach pri orität sondern, ajax mehrere variablen abfragen, abfrager für 2 variablen, php gleich abfrage mehrere variablen, php nach variable sortieren, ajax sql abfrage zeitintervall, sortierung 1. priorität und 2. priorität sql, sql abfrage mit 2 variablen, php, sortierung bei gleichem ergebnis, priorität sql anfrage, abfrage für 2 variablen, php priorität nach datum

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum