Letzte ID (SQL Tabelle) als Int Wert ausgeben lassen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hennington, 11. August 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 11. August 2006
    Moin!
    Ich brauche eine Lösung, um die letzte bzw. größte ID einer SQL Tabelle in eine variable zu speichern, sodass ich nachher den Befehl
    "SELECT * FROM servers WHERE id == $var" nutzen kann.
    Mein Quelltext sieht momentan folgendermaßen aus:
    Code:
     
    <?php
     error_reporting('E_ALL');
     require ('config.php');
     @mysql_connect(HOST, USER, PASS) OR die(mysql_error());
     mysql_select_db(DB) OR die(mysql_error());
     $sql = 'Select ID FROM servers ORDER BY ID DES LIMIT 1';
     $lastid = mysql_query($sql) OR die(mysql_error());
     $sql = 'Select port FROM servers WHERE id = '.$lastid.'';
     mysql_query($sql) OR die(mysql_error());
    ?>
    
    Allerdings bekomme ich immer den Error
    Code:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #5' at line 1
     
  2. 11. August 2006
    ORDER BY id DES C
     
  3. 11. August 2006
    Achso ja, das hab ich schon behoben zu dem Zeitpunkt.. das liegt definitiv nicht daran.
    Wie oben beschrieben, brauche ich die letzte ID als INTEGER und nicht als irgendeinen SQL Wert. Sprich ich muss es umwandeln, oder die IDF mit einem anderen Befehl rausbekommen.
    Get MAX(ID) funzt btw auch nicht.
     
  4. 11. August 2006
    Code:
     $lastid = mysql_query($sql) OR die(mysql_error());
     $sql = 'Select port FROM servers WHERE id = '.$lastid.'';
    ist Mist.
    Code:
     $result = mysql_query($sql);
     if($result) {
     $row = mysql_fetch_row($result);
     $lastid = $row[0];
     } else
     die(mysql_error());
    
     $sql = "select port from servers where id = "'. $lastid ."'";
    sollte gehen.

    //edit
    Nachtrag zum Verständnis:
    mysql_query hat als Rückgabewert (und den weist du $lastid bei Erfolg zu) den Typ resource, nicht integer. Deswegen kommt deine Fehlermeldung.
     
  5. 11. August 2006
    Ahh, vielen Dank!
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.