# Größte ID einer MySQL-Tabelle abfragen



## jackie05 (23. Mai 2007)

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:


```
$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


----------



## Flex (23. Mai 2007)

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


```
$sql = "SELECT * FROM post WHERE id";
$result = mysql_query($sql);
while($row = mysql_fetch_object($result)) {
 # deine Aktion
}
```


----------



## jackie05 (23. Mai 2007)

Cool, danke Dir.
Ich dachte um nur den größten ID auszulesen, brauch ich net gleich ne schleife zu benutzen.

Vielen Dank.

MfG


----------



## jack-x (23. Mai 2007)

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.


----------



## Flex (23. Mai 2007)

Genau.

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


```
SELECT MAX(`id`) FROM `table`
```


----------



## andy72 (23. Mai 2007)

Eine Schleife braucht man dennoch nicht:


```
$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


----------

