db-abrage sortieren
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
db-abrage sortieren
Hallo
Ich habe eine Datenbank mit verschiedenen Tabellen.
Zwei der Datensätze sind "Name" und "Punkte".
Nun möchte ich die Datenbank abfragen, und die 5 "Namen" mit den meisten "Punkten" anzeigen lassen.
Wie kann ich das machen? Habe nicht viel Ahnung von mysql,...
Danke! Léo
Ich habe eine Datenbank mit verschiedenen Tabellen.
Zwei der Datensätze sind "Name" und "Punkte".
Nun möchte ich die Datenbank abfragen, und die 5 "Namen" mit den meisten "Punkten" anzeigen lassen.
Wie kann ich das machen? Habe nicht viel Ahnung von mysql,...
Danke! Léo
Code: Alles auswählen
"... ORDER BY Punkte ASC LIMIT 5"
ASC - für umgekehrte Reihenfolge (absteigend)
LIMIT 5 - nur fünf Einträge
http://dev.mysql.com/doc/refman/5.1/de/select.html
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
Hallo und schon mal danke für Eure Hilfe!
Habe es mal so versucht:
Ist wahrscheinlich viel zu umständlich gestaltet, aber wie könnte man das simpler machen? Es soll eine Tabelle geben mit in jeder Zeile 2 Spalten mit Vorname + Nachname und in der zweiten die Punkte (ohne Dezimalstellen wie jetzt...)
Für die erste Person funktioniert mein Script soweit, nur weiter gehts nicht...
Wer kann mir helfen?
Danke! Léo
Habe es mal so versucht:
Code: Alles auswählen
<?php
$db = mysql_connect("localhost","dbminiadmin","passwort");
mysql_select_db("mini-shop");
$topminis = mysql_query("SELECT customers_firstname, customers_lastname, customers_shopping_points
FROM customers ORDER BY customers_shopping_points DESC LIMIT 5");
$row1 = mysql_fetch_row($topminis);
$fn1 = $row1[0];
$ln1 = $row1[1];
$sp1 = $row1[2];
$fn2 = $row1[3];
$ln2 = $row1[4];
$sp2 = $row1[5];
?>
<html>
<head>
<title>
Minis
</title>
<body>
<table border=1>
<tr>
<td>
<?php
echo($fn1);
?>
</td><td>
<?php
echo($ln1);
?>
</td><td>
<?php
echo($sp1);
?>
</td></tr><tr><td>
<?php
echo($fn2);
mysql_close($db);
?>
Für die erste Person funktioniert mein Script soweit, nur weiter gehts nicht...
Wer kann mir helfen?
Danke! Léo
- Jan500
- Ehemaliges Teammitglied
- Beiträge: 4199
- Registriert: 01.03.2003 21:32
- Wohnort: Hamburg
- Kontaktdaten:
hi
wie wäre es mit
?
Jan
wie wäre es mit
Code: Alles auswählen
<html>
<head>
<title>
Minis
</title>
<body>
<table border="1">
<tr><th>Name, Vorname</th><th>Punkte</th></tr>
<?php
$db = mysql_connect("localhost","dbminiadmin","passwort");
mysql_select_db("mini-shop");
$limit = 5;
$sql = "SELECT customers_firstname, customers_lastname, customers_shopping_points
FROM customers ORDER BY customers_shopping_points DESC LIMIT $limit";
$topminis = mysql_query($sql);
while ($row = mysql_fetch_array($topminis))
{
echo '<tr>' . $row['customers_lastname'] . ', ' .$row['customers_firstname'] . '<td><td>' . $row['customers_shopping_points'] . '</td></tr>';
}
mysql_close($db);
?>
</table>
</body>
</html>
Jan
"Life begins at 40 Knots...!" 
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!

kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
Hi
Hatte zwar einen kleinen Fehler mit den <td> in
so ists richtig.
Aber funktioniert prima! Vielen Dank!
Was bezweckt denn genau
Das war mir noch nie klar...
Und noch: Ist es möglich, "customers_shopping_points" ohne Dezimalstellen auszugeben? Oder einfach die 3 hintersten Zeichen zu entfernen. (momentan ists zB. 92.00, angezeigt werden müsste aber nur 92
Vielen Dank! Léo
Hatte zwar einen kleinen Fehler mit den <td> in
Code: Alles auswählen
echo '<tr><td>' . $row['customers_firstname'] . ' ' .$row['customers_lastname'] . '</td><td>' . $row['customers_shopping_points'] . '</td></tr>';
Aber funktioniert prima! Vielen Dank!
Was bezweckt denn genau
Code: Alles auswählen
while ($row = mysql_fetch_array($topminis))
Und noch: Ist es möglich, "customers_shopping_points" ohne Dezimalstellen auszugeben? Oder einfach die 3 hintersten Zeichen zu entfernen. (momentan ists zB. 92.00, angezeigt werden müsste aber nur 92
Vielen Dank! Léo
- Jan500
- Ehemaliges Teammitglied
- Beiträge: 4199
- Registriert: 01.03.2003 21:32
- Wohnort: Hamburg
- Kontaktdaten:
h
ja, sry hatte die tabele etwas schnell hingeschrieben ^^
damit du gane zahlen bekommst schreib
while ist eine schleife und wirdsolane wiederholt bis die bedingung FALSE wird (also bis keine ergebnissemehr vom query geiefert werden)
http://www.php.net/manual/de/control-st ... .while.php
Jan
ja, sry hatte die tabele etwas schnell hingeschrieben ^^
damit du gane zahlen bekommst schreib
Code: Alles auswählen
intval($row['customers_shopping_points'])
http://www.php.net/manual/de/control-st ... .while.php
Jan
"Life begins at 40 Knots...!" 
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!

kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
Danke!
Wo muss dass genau hin? So funktionierts nicht: es ändert nichts...
Wo muss dass genau hin? So funktionierts nicht: es ändert nichts...
Code: Alles auswählen
echo '<tr><td>' . $row['customers_firstname'] . ' ' .$row['customers_lastname'] . '</td><td>' . intval($row['customers_shopping_points']) . '</td></tr>';
- Jan500
- Ehemaliges Teammitglied
- Beiträge: 4199
- Registriert: 01.03.2003 21:32
- Wohnort: Hamburg
- Kontaktdaten:
uinwas für einem typ sind die punkte gespeichert? als string?
soll das 92,00 sein? oder als "text" 92.00
wenn die letzte drei zeichen immer abgeschnitten werden oslln kannst du auch statt
das
schreiben
Jan
soll das 92,00 sein? oder als "text" 92.00
wenn die letzte drei zeichen immer abgeschnitten werden oslln kannst du auch statt
Code: Alles auswählen
intval($row['customers_shopping_points'])
Code: Alles auswählen
substr($row['customers_shopping_points'], 0, -3)
Jan
"Life begins at 40 Knots...!" 
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!

kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
- leopittoni
- Mitglied
- Beiträge: 1162
- Registriert: 26.04.2004 20:17
Ok, danke! funktioniert!
Noch eine mySQL-Frage...
Ich habe in der Tabelle "customers" einen Eintrag "einsatz" mit versch. Daten.
Nun müsste ich das Aktuelle Datum erfassen, und alle "customers_names" anzeigen, die ein Datum in "einsatz" haben, welches diese Woche ist.
Ist das möglich? Wie müsste ich die Daten in "einsatz" eingeben/formatieren?
Und wie müsste ich das Datum checken und dann überprüfen, wer in der aktuellen Woche ein Datum eingetragen hat?
Danke! Léo
Noch eine mySQL-Frage...
Ich habe in der Tabelle "customers" einen Eintrag "einsatz" mit versch. Daten.
Nun müsste ich das Aktuelle Datum erfassen, und alle "customers_names" anzeigen, die ein Datum in "einsatz" haben, welches diese Woche ist.
Ist das möglich? Wie müsste ich die Daten in "einsatz" eingeben/formatieren?
Und wie müsste ich das Datum checken und dann überprüfen, wer in der aktuellen Woche ein Datum eingetragen hat?
Danke! Léo