letzte id abfragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • letzte id abfragen

    Hi!

    Wenn ich z.B. einen DAtenbankeintrag mache:

    SQL-Abfrage

    1. INSERT INTO test (id, value) VALUES ('', '$wert')

    wie komme ich dann an die ID, die der dabei ja automatisch zugewiesen hat?

    Funktioniert das einfach mit

    Quellcode

    1. $result = mysql_query("SELECT id FROM test"');
    2. while($row = mysql_fetch_object($result))
    3. {
    4. $lastid = $row->id;
    5. break;
    6. }


    Oder muss anders vorgehen, um möglichst einfach ( :D ) an die letzte ID zu kommen?

    Grüße
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • ich habe folgendes vor:
    ich erstelle für meinen clan ein warscript.
    also gibt es eine tabelle mit den wars (datum, gegner und ausgang). eine zweite tabelle beinhaltet dazu die maps mit den verschiedenen ausgängen und den screenshots.
    in der zweiten tabelle werden die screenshots und maps durch die id des wars in der ersten tabelle zugeordnet ("warid").
    daher brauche ich halt die automatisch zugewiesene id...
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • ich pack meine so querys eigentlich immer in funktionen und als rückgabewert nehm ich die id..
    so kann man die super staffeln
    <?
    function add_nummer1()
    {
    mysql_query(INSERT INTO... );
    $last = mysql_fetch_array(mysql_query(select id from test order by id desc));
    return $last[id];
    }

    function add_nummer2()
    {
    mysql_query(INSERT INTO nummer2 nummer1_id VALUES add_nummer1());
    }
    ?>
  • die funktion fetch_array scheont mir da fehl am platz.

    um an die letzt id zu kommen würde ich folgendes machen:

    Quellcode

    1. <?php
    2. $result = mysql_query("SELECT id FROM test ORDER BY id DESC");
    3. if (!$result) {
    4. echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
    5. exit;
    6. }
    7. $row = mysql_fetch_row($result);
    8. lastid = $row[0];
    9. ?>
    Alles anzeigen



    €:
    von php.net
    Wiederholtes Aufrufen von mysql_fetch_row() liefert den nächsten Datensatz des Anfrageergebnisses oder FALSE, wenn keine weiteren Datensätze verfügbar sind.

    d.h. also, dass erstmal nur eine zeile der tablel zurückgegeben wird, wenn man die funktion einemal ausführt, also nur den datensatz, den man haben will.
    damit dürfte diese abfrage auch schneller sein, oder?
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • aber das problem ist, dass wenn 2 leute gleichzeitig was einfügen, dann einer von denen ne falsche last-ID bekommt.
    für so hausübliche scripts mag das vllt noch klappen, aber wenn die seite wirklich riesig ist...
    naja, ich wers erstmal so versuchen...
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.