Summe der Einträge /= id

dirk_nagel

Mitglied
Liebe Experten,

als totaler PHP-Anfänger habe ich ein für euch sicherlich kleines Problem, aber ich finde einfach keine Lösung: Ich möchte aus der Tabelle in einer mySQL-Datenbank die von 1 bis n durchlaufende Spalte 'id' auslesen und zwar ihren höchsten Wert. So weit, so gut, das klappt mit meinem kleinen Script prima:

$query = "SELECT * FROM tabelle ORDER BY id DESC LIMIT 1";

Nun werden aus der Tabelle ab und zu einzelne Einträge gelöscht, das Problem ist jedoch, dass die 'id' sich nicht anpasst und weiterläuft. Werden die Einträge 53 und 176 von den 200 bestehenden Einträgen gelöscht, bekommt der nächste Eintrag trotzdem austomatisch die id 201, obwohl dann nur 199 Einträge in der Tabelle sind und die Einträge 53 und 176 fehlen. Mit dem Auslesen der 'id' bekomme ich somit nicht die Summe meiner Einträge in der Tabelle angezeigt. Könnt ihr mir vielleicht weiterhelfen und einen Tipp geben?

Vielen herzlichen Dank!
Dirk Nagel
 
hi,

was du suchst ist COUNT()

PHP:
$sql = "SELECT COUNT(*) as summe FROM tabelle";
$result = mysql_query($sql) OR die (mysql_error());
$row = mysql_fetch_array($result);
echo $row["summe"];
 
Danke für die schnelle Antwort! Aber... :-)
SUM addiert die IDs zu einer astronomischen Summe auf: 1+2+3+4+5+..+n . Ich will ja nur die höchste ID abzüglich der IDs, die es in der Tabelle durch vorheriges Löschen nicht mehr gibt, also das tatsächliche n in der Tabelle. Oder habe ich dein Script einfach nur falsch umgesetzt?

Viele Grüße
Dirk Nagel
 
Von SUM() war nie die Rede. Er schrieb ausdrücklich COUNT(), was für das Zählen der Einträge verantwortlich ist. Eine Komplettlösung hast du also schon erhalten, einfach Probieren.
 
Guten Morgen,

euch beiden herzlichen Dank! Funktioniert jetzt, hatte gestern nach einem anfänglichen Fehlversuch (*) mit (id) ersetzt und war auf das Summenergebnis gekommen - mein Fehler!

Nochmals Danke!
Dirk Nagel
 
Zurück