Nach Name sortieren
Met456
- datenbank
0 wahsaga1 _King Lully0 wahsaga0 Ilja0 _King Lully0 Ilja0 _King Lully0 Ilja
0 Met456
Hi ich wollte über php aus meiner db die einträge nach namen sortieren so weit bin ich gekommen
<?php
$con = mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $con) or die (mysql_error());
$sql = "SELECT *
FROM T\_game
WHERE (ID
>= '1' AND ID
<= '15')
GROUP BY Name
LIMIT 0 , 20 ";
$result = mysql_query($sql, $con) or die (mysql_error());
if ($result)
while ($row = mysql_fetch_array($result, MYSQL_NUM) ) {
echo $row[0] . "<br />";
}
?>
aber ich kriege nur die ID und nicht die name sortiert
hi,
$sql = "SELECT *
FROMT\_game
WHERE (ID
>= '1' ANDID
<= '15')
GROUP BYName
LIMIT 0 , 20 ";aber ich kriege nur die ID und nicht die name sortiert
Nee, damit bekommst du gar nix sortiert (sondern eine zufällige Reihenfolge).
Für's Sortieren ist nicht GROUP BY, sondern ORDER BY verantwortlich.
gruß,
wahsaga
$sql = "SELECT *
FROMT\_game
WHERE (ID
>= '1' ANDID
<= '15')
GROUP BYName
LIMIT 0 , 20 ";aber ich kriege nur die ID und nicht die name sortiert
Nee, damit bekommst du gar nix sortiert (sondern eine zufällige Reihenfolge).
Für's Sortieren ist nicht GROUP BY, sondern ORDER BY verantwortlich.
Ganz so ist es ja nicht, Bruder:
http://dev.mysql.com/doc/refman/5.1/de/select.html
"Wenn Sie GROUP BY verwenden, werden die Ausgabedatensätze entsprechend den GROUP BY-Spalten sortiert, so als ob Sie eine ORDER BY-Klausel für dieselben Spalten angegeben hätten."
hi,
"Wenn Sie GROUP BY verwenden, werden die Ausgabedatensätze entsprechend den GROUP BY-Spalten sortiert, so als ob Sie eine ORDER BY-Klausel für dieselben Spalten angegeben hätten."
War mir nicht bekannt, danke für den Hinweis.
gruß,
wahsaga
Hallo wahsaga,
War mir nicht bekannt, danke für den Hinweis.
Du zeigst wahre Größe,
wow, wow ;)
Gruß Gernot
yo,
"Wenn Sie GROUP BY verwenden, werden die Ausgabedatensätze entsprechend den GROUP BY-Spalten sortiert, so als ob Sie eine ORDER BY-Klausel für dieselben Spalten angegeben hätten."
ich würde trotzdem expliziet ORDER BY benutzen, wie es wahsaga gesagt hat. zum einen macht es den code übersichtlicher und zum anderen wird nicht jedes dbms dir bei einem GROUP BY die ergebnisse in einer sortierten reihenfolge zurückliefern.
Ilja
"Wenn Sie GROUP BY verwenden, werden die Ausgabedatensätze entsprechend den GROUP BY-Spalten sortiert, so als ob Sie eine ORDER BY-Klausel für dieselben Spalten angegeben hätten."
ich würde trotzdem expliziet ORDER BY benutzen, wie es wahsaga gesagt hat. zum einen macht es den code übersichtlicher und zum anderen wird nicht jedes dbms dir bei einem GROUP BY die ergebnisse in einer sortierten reihenfolge zurückliefern.
Schon klar, bspw. MS SQL Server:
http://msdn2.microsoft.com/en-us/library/ms177673.aspx
"If the ORDER BY clause is not specified, groups returned by using the GROUP BY clause are not in any particular order. To specify a particular ordering of the data, we recommend that you always use the ORDER BY clause."
Mal am Rande, GROUP BY ist u.a. auch kein guter "SELECT DISTINCT"-Ersatz und sollte üblicherweise immer zusammen mit Aggregatfunktionen verwendet werden.
yo,
Mal am Rande, GROUP BY ist u.a. auch kein guter "SELECT DISTINCT"-Ersatz und sollte üblicherweise immer zusammen mit Aggregatfunktionen verwendet werden.
und worin siehst du den grossen unterschied ?
Ilja
Mal am Rande, GROUP BY ist u.a. auch kein guter "SELECT DISTINCT"-Ersatz und sollte üblicherweise immer zusammen mit Aggregatfunktionen verwendet werden.
und worin siehst du den grossen unterschied ?
Weils besser ist?
yo,
und worin siehst du den grossen unterschied ?
Weils besser ist?
das ist eine bewertung und kein unterschied, worauf basiert deine bewertung ?
Ilja
und worin siehst du den grossen unterschied ?
Weils besser ist?das ist eine bewertung und kein unterschied, worauf basiert deine bewertung ?
Du machst es ja richtig mit Deinen "Warum"-"Warum"-Fragen nur irgendwann kommt man nur noch auf irgendwelche Prinzipien, auf die man verweisen kann als Antwort. Das ein Prinzip herhalten musste bei Deinem letzten "Warum?" dürfte also nunmehr klar sein.
Also, wir behaupten, dass bspw. ein "SELECT DISTINCT DF_1, DF_2 FROM DT_1 ORDER BY DF_1 ASC, DF_2 ASC" einfacher und klarer ist als ein "SELECT (ALL) DF_1, DF_2 FROM DT_1 GROUP BY DF_1, DF_2" mit demselben Ergebnis unter MySQL.
Hi ich wollte über php aus meiner db die einträge nach namen sortieren so weit bin ich gekommen
<?php
$con = mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $con) or die (mysql_error());$sql = "SELECT *
FROMT\_game
WHERE (ID
>= '1' ANDID
<= '15')
Order BYName
LIMIT 0 , 20 ";$result = mysql_query($sql, $con) or die (mysql_error());
if ($result)
while ($row = mysql_fetch_array($result, MYSQL_NUM) ) {
echo $row[0] . "<br />";
}?>
aber ich kriege nur die ID und nicht die name sortiert
<?php
$con = mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $con) or die (mysql_error());$sql = "SELECT *
FROMT\_game
WHERE (ID
>= '1' ANDID
<= '15')
Order BYName
LIMIT 0 , 20 ";$result = mysql_query($sql, $con) or die (mysql_error());
if ($result)
while ($row = mysql_fetch_array($result, MYSQL_NUM) ) {
echo $row[0] . "<br />";
}?>
auch mit order by kriege ich die namen nicht angezeigt sindern ID
Servus,
zu Beginn: Fullquotes sind nicht so wirklich erwünscht .. der ganze Salm existiert ja schon mal.
Wenn du natürlich _nur_ das 0. = 1. Element des $row Arrays ausgibst und selbiges eben _nur_ die ID ist, dann bekommst du zwangsweise auch nur die ID angezeigt.
Gewöhne dir bitte auch an, die Spalten, die du "selektieren" willst, explizit (=ausdrücklich) nach SELECT anstelle des * anzugeben.
Grüessli, Frank
hi,
zitiere bitte mal vernünftig, und nicht immer alles.
auch mit order by kriege ich die namen nicht angezeigt sindern ID
Dann ist es wohl gar kein Problem der Sortierung - sondern dir ist gar nicht bewusst, welche Spalten du in welcher Reihenfolge ausliest.
Selbst Schuld, wenn du SELECT * schreibst - also das mal ändern.
Und print_r($row) könnte dir etwas mehr Durchblick verschaffen, was du eigentlich bekommst.
gruß,
wahsaga