Größte ID einer MySQL-Tabelle abfragen

jackie05

Erfahrenes Mitglied
Hallo,
ich hab mal wieder ein kleines problem und zwar, sobald mehr wie 2 Datensätze in der DB sind, wird die ID nicht mehr um eins erhöt.
Ich kann die ID nicht in der Datenbank automatisch Incrementieren, weil ich es anderst machen möchte.
Hier mal der Code:

PHP:
$sql = "SELECT * FROM post WHERE id";
$result = mysql_query($sql);
$row = mysql_fetch_object($result);
$id = $row->id;
$id++;

wenn nur ein eintrag in der DB ist, dann functioniert das, aber wenn 2 einträge vorhanden sind, funktioniert auch nicht mal weitere einträge hinzuzufügen.
mysql_query("INSERT INTO post (id, forum_id, titel, beschreibung, antworten, autor, aufrufe, datum) VALUES ('$id', '$forum_id', '".$_POST['titel']."', '".$_POST['nachricht']."', '0', '".$_SESSION['user_nick']."', '0', '$datum')");

das ist nur ein teil von meinem Forum.

Ich wäre euch sehr dankbar, wenn ihr mein problem lösen könnt.

MfG
 
Das liegt daran, dass du keine Schleife zum Auslesen verwendest.

PHP:
$sql = "SELECT * FROM post WHERE id";
$result = mysql_query($sql);
while($row = mysql_fetch_object($result)) {
 # deine Aktion
}
 
Cool, danke Dir.
Ich dachte um nur den größten ID auszulesen, brauch ich net gleich ne schleife zu benutzen.

Vielen Dank.

MfG
 
Wenn man keine id im Insert verwendet und die id in der Datenbankstruktur als PrimaryKey definiert. Und diesen als Auto Increment festlegt, dann braucht man die Abfrage nach der höchsten id gar nicht mehr ausführen, MySQL zählt dann selbst automatisch hoch.
 
Genau.

Falls du höchste ID für andere Zwecke brauchst, kannst du es auch so auslesen:

SQL:
SELECT MAX(`id`) FROM `table`
 
Eine Schleife braucht man dennoch nicht:

Code:
$SQL = "SELECT MAX(id) AS mid FROM tablename"
$res = mysql_query($SQL);
$ret = mysql_fetch_array($res);

$wert = $ret['mid'];

LG
Andy

Ok,da war einer schneller :D
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück