Automatisch nummer vergeben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Automatisch nummer vergeben?

    Hi! Ich möchte bei einem Eintrag und Eintragen-Button=Eintrag in Tabelle und automatisch eine Nummer vergeben! Das mache ich so!

    <? if ($eintrageins) {
    $db = mysql_pconnect("localhost","./","");
    mysql_select_db("Userdb",$db);
    $sql="update kunden set Url1='$URL1',text1='$text1' where id=$UserID";
    $result = mysql_query($sql,$db) or die("update nicht erfolgreich !");
    $sql="update statistik set URL1='$URL1' where UserID=$UserID";
    $result = mysql_query($sql,$db) or die("update nicht erfolgreich !");

    $sql="update besuchertausch set nummer='auto',UserID='$UserID',URL='$URL1',Text='$text1'";
    $result = mysql_query($sql,$db) or die("update nicht erfolgreich !");
    }
    ?>

    was muß ich bei set nummer='auto' hinsetzen, damit er mir automatisch die nächste Zahl einsetzt!??
    No internationalisation, no fun.

  • #2
    Hier gar nichts, aber die Column Nummer musst du als auto_increment definieren.

    CAT Music Files

    Kommentar


    • #3
      Das geht aber leider nicht, da ich schon eine andere Tabelle habe, wo ich eine ID automatisch vergeben lasse!
      No internationalisation, no fun.

      Kommentar


      • #4
        Ja und? Pro Tabelle kannst du eine auto_increment Column vergeben.

        Aber wenn's denn unbedingt sein muss:

        INSERT INTO tabelle SET nummer=max(nummer)+1

        CAT Music Files

        Kommentar


        • #5
          MMMmmmh! Er gibt mir immerwieder die Null als nummer her! Also er macht das ansonsten Fehlerfrei aber er vergibt mir halt als nummer nur die "0"!
          $sql="insert into besuchertausch set nummer='max(nummer)+1',UserID='$UserID',URL='$URL1'";
          $result = mysql_query($sql,$db) or die("update nicht erfolgreich !");
          No internationalisation, no fun.

          Kommentar


          • #6
            logisch

            Da du keine Datensätze selektierst, ist max(nummer) 0.

            Das hier ist rein syntaktisch die Lösung:
            insert into tabelle (nummer) select 1+max(nummer) from tabelle
            Ist aber nicht zulässig, da du in die gleiche Tabelle schreibst, aus der du liest.

            Die einfachste Lösung wäre tatsächlich, auch in dieser Tabelle ein auto-increment zu vergeben; sonst bleibt nur noch die Lösung mir zwei Queries:

            $q = mysql_query ('select max(nummer) from tabelle');
            $r = mysql_fetch_row($q);
            mysql_query ("insert into tabelle (nummer) values 1+$r[0]");
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar

            Lädt...
            X