auto_increment

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

  • auto_increment

    Hiho, ich mal wieder

    Ich habe ein kleines Script zum einfügen von Daten in eine Datenbank geschrieben. Habe in der Datenbank die Parameter int(7) UNSIGNED auto_increment gegeben, damit eine eingefügt Zeile immer automatisch eine neue ID, also quasi neue ID = alte ID +1 bekommt. Das klappt, aber wenn ich dann die eingefügten Daten manuell via pMA aus der DB lösche, zählt er dort weiter wo die letzte ID vor der Löschung war.

    Beispiel: Das Script erstellt eine Zeile in der Datenbank, die Zeile bekommt ID = 1, ich füge eine Zeile ein, die bekommt ID = 2, ich lösche beide, so dass die Tabelle leer ist und starte das Script und lass es eine neue Zeile einfügen. Und siehe da, die neue Zeile bekommt die ID = 3 obwohl die letzten beiden Zeilen davor von mir gelöscht wurden.

    Woran mag denn das liegen?

    Danke im Vorraus,
    Boris

  • #2
    das ist soweit ich weis normal. auto_increment zählt die insgesamt erstellten einträge und nicht die vorhandenen

    Kommentar


    • #3
      kann man das nicht irgendwie resetten?

      Kommentar


      • #4
        TRUNCATE tabelle leert sie und setzt den auto_increment-zähler wieder auf den startwert


        aber das mysql do weitermacht, wo es aufgehört hat, hat schon seinen sinn, stell dir mal vor, meine nachbarin meldet sich auf einer homepage an und bekommt dort die id 75

        in einer weiteren tabelle speichere ich ihre hobbys:
        - stricken
        - putzen
        - häkeln
        - chauvinistische männer prügeln

        irgendwann löscht sie ihren account und ich lösche ihren eintrag aus der benutzertabelle

        jetzt kommst du daher, meldest dich an und bekommst die jetzt weider freie id 75
        bist du sicher, dass das da oben deine hobbies sind?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          hmmmmmmm,
          hatte das erst anders versucht.

          so nach dem Motto $neuezeile = $altezeile +1

          das lief aber nich, es wurden an jede zeile ID =0 gegeben.

          Kommentar


          • #6
            gib beim insert keine id an, das macht die datenbank für dich

            abfragen kannst du die id dann so
            PHP-Code:
            mysql_query('INSERT ...');
            $id_des_neuen_datensatzes mysql_insert_id(); 
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Re: auto_increment

              Original geschrieben von Ghostrider
              [...] zählt er dort weiter wo die letzte ID vor der Löschung war.
              wie oft haben wir eigentlich schon gesagt, dass das normal ist, dass das auch gut so ist, dass das so sein soll ... dass die leute die verdammte suchfunktion benutzen sollen ...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von mrhappiness

                bist du sicher, dass das da oben deine hobbies sind?
                hehe, schon mal von cascading delete und saubere Programmierung gehört







                [color=silver]ist nur 'n Scherz[/color]

                Kommentar


                • #9
                  PHP-Code:
                  if ($submit == "submit")

                  {
                  $zeile mysql_insert_id();
                  mysql_query('INSERT into warenwirtschaft (zeile,artikel_nummer,bezeichnung,
                  modell,hersteller,einheit,gewicht_kg,
                  preis_einkauf) 
                  values ('
                  $zeile','$artikel_nummer',
                  '
                  $bezeichnung','$modell','$hersteller',
                  '
                  $einheit','$gewicht_kg','$preis_einkauf');

                  echo "Hat geklappt"; 
                  include('
                  warenwirtschaft.php');

                  habe das mal so versucht, aber ich erhalte parse fehler für die zeile INSERT....
                  EDIT:
                  Zeileumbrüche by mrhappiness
                  Zuletzt geändert von mrhappiness; 17.06.2004, 16:36.

                  Kommentar


                  • #10
                    @asp2php
                    ich ja...

                    @ghostrider
                    editir deinen beitrag bitte mal und setzte den code in php-tags [php] und [/php] drumrumschreiben

                    dann siehst du sofort, wo dein fehler ist

                    außerdem vergleich mal die reihenfolge von mysql_query und mysql_insert_id in meinem beispiel und in deinem versuch
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Das mit den PHP Tags vergesse ich jedes mal, aber habe das mal fox geändert. Wie meinst du das, dass man den Fehler dann direkt sieht?

                      Habe das auch im Script eben geändert, was du meintest, aber das Ergebnis ist das gleiche. Parse Error

                      Kommentar


                      • #12
                        Original geschrieben von Ghostrider
                        Wie meinst du das, dass man den Fehler dann direkt sieht?
                        man sieht am highlighting, wo ein string anfängt, und wo er wieder aufhört - obwohl er nach deiner logik da wohl noch nicht zuende sein soll.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Ahaaaaaaaa

                          Und wo kommt der Parse Error nun her? Ich habe keine ahnung,.

                          Kommentar


                          • #14
                            alles was zwischen den klammern bei mysql_query steht sollte rot sein

                            ist es das?

                            nein?

                            da kommt der fehler her

                            ändere die äußeren ' mal in "
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Original geschrieben von Ghostrider
                              Ich habe keine ahnung,.
                              ja, ich glaube das können wir als essenz aus diesem und den meisten deiner bisherigen threads ruhig mal so festhalten.

                              darauf, dass du dir erst mal die grundlagen beibringen solltest, bevor du weitere scripte zu erstellen versuchst, wurdest du, wenn mich nicht alles täuscht, bereits des öfteren hingewiesen - also tu's bitte endlich!


                              sorry, aber wenn jemand nicht einmal in der lage ist, einen parse error zu finden, der aufgrund falscher notation eines strings zustande kommt, dann ist das weit unterhalb des niveaus, dass man in foren als mindestmaß ansehen sollte.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X