[MySQL] ID rausfinden

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MolchMaster, 1. August 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 1. August 2006
    Ich hab in meiner Tabelle ein Feld "ID", welches Primärschlüssel ist und auto_increment anhat.

    Ich trage meine Daten folgendermaßen in die Tabelle ein:

    PHP:
    <? php
    $sqlbefehl
    = "insert into tabellenname values ('','name','vorname','ort')" ;
    mysql_db_query ( $sqldb , $sqlbefehl , $verbindung );
    ?>
    Wie kann ich mir jetzt die ID dieses Eintrages anzeigen lassen ?
    Also welche ID MySql diesem Eintrag gegeben hat.

    Man beachte: Es können auch doppelte Einträge dasein, dass sich halt nur die ID unterscheidet.
    Aber ich will ja die ID von dem eben getätigten Eintrag erhalten.

    Alternativ mssen alle Felder abgefragt werden, um keine doppelten Einträge zu haben (Dann muss aber auch alles genau übereinstimmen)
     
  2. 1. August 2006
    ich weiß dass es suboptimal ist aber du kannst direkt den letzten eintrag abfragen

    sollte dann den letzten wiedergeben

    "SELECT id FROM tabellenname ORDER BY id LIMIT 1"

    PHP:

    $q 
    mysql_query (
    "SELECT id FROM tabellenname ORDER BY id DESC LIMIT 1" $con );
    ....

     
  3. 1. August 2006
    Select from * ...... order by id DESC oder ASC musst du mal gucken wierum das war *gg*
     
  4. 1. August 2006
    Also das geht... aber man kann auch WHERE benutzen wenn man will
    Code:
    $getid = mysql_query("SELECT * FROM tabelle ORDER BY id DESC LIMIT 0,1");
    $array=mysql_fetch_array($getid);
    $id = $array["id"];
    
     
  5. 1. August 2006
    ich hab jetzt dashier:

    Code:
    $getid = mysql_query("SELECT * FROM tabellenname ORDER BY id DESC LIMIT 0,1");
    $array=mysql_fetch_array($getid);
    $id = $array["id"];
    echo "$id";
    Aber der gibt mir nix aus ?(
     
  6. 1. August 2006
    bei mysql_query musst du noch ein zweites element angeben das auf die db verweist

    nennt sich bei dir $verbindung wenn ich den code oben richtig interpretiere
     
  7. 1. August 2006
    und muss $verbindung davor oder dahinter ? normalerweise muss mal ja noch die Datenbank und die Verbindung angeben, aber dann meckert er rum, dass ich zuviele parameter angegeben habe.
     
  8. 1. August 2006
    dahinter

    zudem solltest du die db vorher mit mysql_select_db() anwählen
     
  9. 1. August 2006
    Code:
    $getid = "SELECT * FROM tabellenname ORDER BY id DESC LIMIT 0,1";
    $array = mysql_query($getid);
    while($value = mysql_fetch_array($array))
    
    $id = $value["id"];
    echo "$id";

    mach es so dann geht es
     
  10. 1. August 2006
    nope...

    Code:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in test.php on line 33
    Line33: while($value = mysql_fetch_array($array))
     
  11. 1. August 2006
    btw bist du dir sicher dass irgendwas in der tabelle ist die du da ausgelesen haben willst?
     
  12. 1. August 2006
    btw das ding hier
    PHP:
    $sqlbefehl = "insert into tabellenname values ('','name','vorname','ort')" ;
    ist ja mal total falsch! dürfte gar net funzen
    PHP:
    $sqlbefehl  "INSERT INTO tabellenname(name, vorname, ort) VALUES('name','vorname','ort')" ;
    so schon eher (wenn deine spalten name, vorname, ort heißen)

    danach
    PHP:
    $getid  "SELECT id FROM tabellenname ORDER BY id DESC LIMIT 1;"
    $result  mysql_query ( $getid );
    $row = mysql_fetch_assoc ( $result );
    $id  $row [ 'id' ];  // UND HIER MUSS DER NAME DER ID SPALTE REIN, KANNs SEIN, DASS DER GROß GESCHRIEBEN IST BEI DIR?
    echo  $id ;
    so muss es 100pro gehn, deine schreibweise ist ja grausig
     
  13. 1. August 2006
    wenn man die Daten nur einmal eintragen kann einfach so:

    SELECT id FROM tabelle WHERE wert1 = wert1 AND wert2 = wert2 AND wert3 = wert3

    wenn du zB n feld "eMail" hast welche nur einmal eingetragen werdn kann WHERE eMail = eMailVonKackUser

    Oo
     
  14. 1. August 2006
    ID ist überall großgeschrieben.
    Aber es kommt dieser Fehler:

    Parse error: parse error, unexpected T_VARIABLE in test.php on line 32

    line32:$result = mysql_query($getid);
     
  15. 1. August 2006
    hinter die erste zeile gehört ein semikolon
     
  16. 1. August 2006
    jopp sry mein fehler

    PHP:
    $getid  "SELECT ID FROM tabellenname ORDER BY ID DESC LIMIT 1;" ;
    $result  mysql_query ( $getid );
    $row = mysql_fetch_assoc ( $result );
    $id  $row [ 'ID' ]; 
    echo 
    $id ;
    so sollte es gehn
     
  17. 1. August 2006
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in test.php on line 33

    line 33: $row=mysql_fetch_assoc($result);

    hmm...es nervt ^^

    LoLKind, hast du ICQ ?
     
  18. 1. August 2006
    schonmal überprüft ob die tabellennamen / spaltennamen alle 100%ig übereinstimmen? ^^ großkleinschreibung.. etc...
     
  19. 1. August 2006
    warum macht ihr euch das leben so schwer?

    das geht mit folgendem befehl ganz einfach:

    PHP:
      print  mysql_insert_id ();
    Dieser Befehl liefert die ID einer vorherigen INSERT-Operation

    Manual: http://www.phpcenter.de/de-html-manual/function.mysql-insert-id.html
     
  20. 1. August 2006
    ups.. vergessen den tabellennamen zu ändern ^^

    ....passiert....


    Danke an alle, 10er soweit wie möglich raus

    -=Closed=-
     
  21. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.