php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.07.2004, 23:24  
Gast
 
Beiträge: n/a
Standard ORDER BY 2 Werte

hi,

kann man bei einer mysql abfrage bei ORDER BY auch zwei werte angeben?


also z.B. so:

SELECT * FROM xxx WHERE x='x' ORDER BY tag, monat

d.h.

er soll mir die ergebnisse vom kleinsten datum her anzeigen und vom kleinsten monat.

ist das möglich?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.07.2004, 00:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 529
DutziMan befindet sich auf einem aufstrebenden Ast
Standard

Code:
ORDER BY monat, tag DESC
DutziMan ist offline   Mit Zitat antworten
Alt 03.07.2004, 09:45  
Gast
 
Beiträge: n/a
Standard Re: ORDER BY 2 Werte

Zitat:
Zitat von conym18
SELECT * FROM xxx WHERE x='x' ORDER BY tag, monat
wie dutziman schon gesagt hat geht es, aber du hast doch ein lösungsansatz gehabt...
warum hast du den nicht einfach ausprobiert?
  Mit Zitat antworten
Alt 05.07.2004, 13:09  
Gast
 
Beiträge: n/a
Standard Gleiches Problem

Glaub ich

Ich versuche auch die Sortierung über zwei Bereiche, einmal die Spalte Jahr (INT: 2004) und einem Sortierstring (INT: 20041205). Die Sortierung nach Jahr und Sortring Tag (hier die letzten zwei Zahlen) im Sortstring klappt. Der Monat jedoch (Zahl 5-6 im Sortstring) wird nicht beachtet. Die Sortierung ergibt also folgendes Ergebnis:

2004
- 10
--05
--04
--03

- 12
--06
--05

- 11
--12
--11
--10

...
Wie man sieht ist der Monat etwas Konfuss
Irgendwie hab ich ein brett vorm Kopf...
  Mit Zitat antworten
Alt 06.07.2004, 08:33  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

@hfuechter
Wie lautet denn deine Abfrage?
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 07.07.2004, 14:51  
Gast
 
Beiträge: n/a
Standard Jo, had isch nicht dran gedacht...

So sieht die Abfrage aus (abgespeckt):

Code:
$abfrage = "SELECT * FROM db_fwh ORDER BY jahr, sortwert";
$ergebnis = mysql_query($abfrage);

while($row = mysql_fetch_object($ergebnis))
{..AUFLISTUNG_ALLER_DATEN...}
  Mit Zitat antworten
Alt 07.07.2004, 16:24  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich sehe auf den ersten Blick keinen Fehler. Es kann aber auch nicht diese Abfrage sein, die das oben genannte Resultat liefert, da müsste mindestens noch ein "desc" hin. Lass dir mal alle Sortiertwerte ausgeben.
Was ich mich auch noch frage, auch wenn das nicht direkt im Zusammenhang mit dem Problem steht, ist:
  • 1. Warum speicherst du deinen Sortierwert als Integer und nicht als einen Datums-Typ.
    2. Warum sortierst du nach Jahr und Sortierwert, wenn das Jahr ja auch im Sortierwert enthalten ist.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 07.07.2004, 17:33  
Gast
 
Beiträge: n/a
Standard

Ok, also noch mal die gesamte Abfrage, ich dachte nur ich räum etwas auf- ist leichter zu lesen-, da wär das desc wär dann auch Egal- wenn er nur die Reihenfolge einhält, ob nun Vorwärts oder Rückwärts.

Das Jahr habe ich hinzugefügt, weil das Sortwert schon nicht das richtige Ergebniss brachte (mit dem ganzen Umstricken versucht man ja jeden Blödsinn ) Den Sortwert hatte ich schon als Varchar und auch als Timestring versucht. Zum Schluss bin ich dann auf Int hängen geblieben.

Code:
$abfrage = "SELECT * FROM db_fwh WHERE set3 = 'Wettbewerb' AND jahr ='$showjahr' AND set2='Sichtbar'  ORDER BY sortwert, jahr desc";
$ergebnis = mysql_query($abfrage);
{
	echo "<table width=100% border=0 cellpadding=0 cellspacing=0>";

	while($row = mysql_fetch_object($ergebnis))
	{
		echo "<tr><td width=45%>titel ";
		$thumb = $row->set1;
		$link = ereg_replace("/home/httpd/docs/phpnuke/db_fwh/","",$thumb);

		echo "</td><td width=25%> $row->datum ";
		#echo "</td><td width=33%><img src=$link$row->image_small border=0>";
		echo "</td><td width=33%>
<a href=view.php?id=$row->id>$row->intro</a>

";

		echo "</td></tr>";	
		echo "<tr><td colspan=3 bgcolor=#cccccc height=10></TD></tr>";

	}

}
echo "</table>

";
  Mit Zitat antworten
Alt 08.07.2004, 08:51  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Da du ja das Jahr schon als Selektionskriterium eingibst und somit nur ein Jahr ausgibst, macht die Sortierung nach Jahr definitiv keinen Sinn mehr. Aber das ist immer noch nicht das Problem. Gib mal die folgende Abfrage in einen SQL-Monitor ein und schau, was dabei raus kommt:
Code:
SELECT sortwert
    FROM db_fwh 
    WHERE set3 = 'Wettbewerb' 
    AND jahr = 2004
    AND set2 = 'Sichtbar'  
    ORDER BY sortwert desc;
__________________
Gruss
L
lazydog 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 mit count, order by, group by...und Probleme BartTheDevil89 Datenbanken 2 15.06.2008 13:34
ORDER BY im Subquery cycap Datenbanken 12 31.10.2007 20:31
Abfrage = "SELECT * FROM links ORDER BY id" Taktaky PHP Tipps 2008 2 22.08.2007 14:37
Unbekannte Werte verhindern das Dekodieren. freq.9 PHP Tipps 2006 10 15.07.2006 00:28
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
Dynamische Werte übergabe? Logik Problem jesus666 PHP Tipps 2005-2 21 03.08.2005 17:30
Alle Werte eines Array mischen PHP Tipps 2005-2 2 28.07.2005 17:37
Eingabefelder und Werte PHP Tipps 2005-2 1 28.06.2005 08:19
SELECT tbl.col AS a ORDER BY tbl.a versionsabhängig? axo Datenbanken 3 15.04.2005 15:50
Syntaxfehler, wohin kommt ORDER BY PHP Tipps 2005 7 12.02.2005 13:21
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Werte aus zwei Tabellen verknüpfen? Datenbanken 12 05.01.2005 10:41
[Erledigt] Werte werden nicht übergeben Server, Hosting und Workstations 1 11.11.2004 09:30
<select> und alte Werte obi PHP Tipps 2004-2 4 06.11.2004 15:17
Werte mit Texteingabefelder auf einer HP in die DB schreiben PHP Tipps 2004 4 26.08.2004 06:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
order by 2 werte, order by mit mehreren werten, order by zwei werte, order by mit zwei werten, order by mit 2 werten, zwei werte in zwei spalten, order by 2 argumente, order by 2, php order by zwei werte, mysql order mit zwei werten, http://www.php.de/datenbanken/4114-erledigt-order-2-werte.html, mysql order by 2 werte, 2 order by, order by nach 2 werten, php order by 2 werte, sql order by 2 spalten, mysql order by parameter, php order by, order by mehrere parameter, php sql order by 2 parameter

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:29 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.