Letzten Id Wert Ermitteln

A5 Infoschlampe

Erfahrenes Mitglied
Hallo, ich muss mit PHP den letzten eingetragenen ID Wert meiner Tabelle bestimmen können. Gibts da irgendwie einen PHP oder bzw sql befehl????

die id ist autoincrement!

need help,

thx ciao
 
Du meinst also die höchste ID, die im Moment in der Datenbank steht?
Geht das nicht mit:

SELECT MAX(id) FROM tabelle
 
hmm so müsste es dann theoretisch funktionieren nach meiner logik, aber gehen tuts trotzdem nicht??!! :( weiss jemand wieso?

folgenden fehler erhalte ich bei folgendem quelltext

FEHLER:
---
Warning: Use of undefined constant id - assumed 'id' in d:\programme\apache group\apache\htdocs\first\header.php4 on line 149

Warning: Undefined index: id in d:\programme\apache group\apache\htdocs\first\header.php4 on line 149
---
Code:
---

PHP:
 // ID ermitteln
                        $tmp =DBC_2("SELECT MAX(id) FROM discothek");

                        while (@$row = mysql_fetch_array($dbc_intern))
                        {
                         
// HIER wird FEHLER angezeigt
$tmp_id= $row[id]; // muss an id liegen, obwohl das attribut in der db so heisst

                        }
                        mysql_close();

// Ergebnis zur ID schreiben
                        $tmp =DBC_2("SELECT * FROM discothek WHERE 'id'=''$tmp_id'");

                        while (@$row = mysql_fetch_array($dbc_intern))
                        {
                         echo $row[name];
                        }

---
hülfe laan
 
Zuletzt bearbeitet:
Ich denke mal der Fehler liegt an folgenden Stellen:

PHP:
 // ID ermitteln 
$tmp =DBC_2("SELECT MAX(id) FROM discothek"); 

while (@$row = mysql_fetch_array($dbc_intern)) 
{ 

// HIER wird FEHLER angezeigt 
$tmp_id= $row['id']; // <-- HIER, Die ID in ''

} 
mysql_close(); 

// Ergebnis zur ID schreiben 
$tmp =DBC_2("SELECT * FROM discothek WHERE 'id'=''$tmp_id'"); 

while (@$row = mysql_fetch_array($dbc_intern)) 
{ 
echo $row['name']; // <-- HIER, der gleiche Fehler
}

Gehts dann?
 
sorry, an den hochkommas liegts nicht, da diese DBC_2 function ja eine eigene ist und die dort nicht benötigt werden.

aber ich habs jetzt anders gelöst :)
denkfehler meinerseits: mein braucht die MAX funktion eigentlich garnciht um den grössten wert zu ermitteln, sondern man kann die id in ner schleife ja auch durchtickern und ner variablen zuweisen die immer wieder überschrieben wird. der letzte ist ja auch der grösste bei autoincrement *hoffe ich* :)

ciao
 
Das ist richtig. Aber meinst Du nicht das Durchzählen in einer Schleife würde ein wenig lange dauern?

In deiner Funktion arbeitest Du bestimmt mit mysql_fetch_array(); oder? Wenn das der Fall ist, konnte MAX(id) ja gar nicht funktionieren weil du da keinen direkten Feldnamen zurückgekommst. Es müsste dann so gehen:

PHP:
$sql = "SELECT MAX(id) AS newid FROM tabelle";
// ...
$tmp_id = $row[newid];
 
Zurück