Engin: MySQL 5.0 Datenbank zählt falsch

Hi,

versuch mich seid 1-2 Stunden an meiner ersten Datenbank, habe es auch soweit hinbekommen, Tabellen anzulegen,
über http auf besimmte tabellen zuzugreifen und auch über ein Formular die Datenbank mit neuen Infos zu Füttern, und da beginnt mein Problem.

Die indexierung bereitet mir schwierigkeiten, die DB hat angefangen, irgendwo bei id 20 abzuspeichern und zählt hoch,
selbst wenn ich den DB Inhalt komplett leere.

Also die eigentlich erste Spalte der DB ist jetzt mittlerweile bei id 56 statt bei 1, ist das so?

 <?php  
  $irgendwas = $_POST["irgendwas"];  
  $irgendwo = $_POST["irgendwo"];  
  $irgendwann = $_POST["irgendwann"];  
  
  $eintrag = "INSERT INTO test_db (irgendwas, irgendwo, irgendwann)  
                   VALUES (  '$irgendwas', '$irgendwo', '$irgendwann')";  
  
  $eintragen = mysql_query($eintrag);  
  ?>
~~~~~~html
  
 <input type='hidden' name='eintrag'></input>  
 <form method="post" action="...">  
  
 <input type='text' name='irgendwas'></input>  
<input type='text' name='irgendwo'></input>  
<textarea class='textarea' cols='40' rows='8' name='irgendwann'></textarea>  
  
<input type="submit" class="button" value="Absenden"></input></form>

Eigentlich hatte ich auch das Problem, das nach erfolgreichem Speichern noch eine komplette Spalte ohne Inhalt mit abgespeichert wurde,
hat sich wohl von selbst erledigt.

Grüße,
Engin
 GYRO

  1. Hello,

    Also die eigentlich erste Spalte der DB ist jetzt mittlerweile bei id 56 statt bei 1, ist das so?

    es sei dir nachgesehen, dass du einem weitverbreiteten Irrglauben aufgesessen bist, nämlich dem, dass die Id für dich irgendeine inhaltliche Bedeutung hat. Die Id vom Typ auto_increment dient lediglich dazu dir etwas Arbeit bei der Generierung eines Primärschlüssels abzunehmen. Der Primärschlüssel selbst erfüllt nur einen einzigen Zweck: den Datensatz eindeutig zu identifizieren. Die Nummer dient folglich in keinster Weise dazu Datensätze zu nummerieren oder zu sortieren! Es ist aus Sicht der Datenbank sogar hochgefährlich sie wieder bei 1 loslaufen zu lassen, es könnte nämlich zu einer "Verwechslung" mit dem vorherigen Datensatz mit dieser Nummer kommen, sofern jemand anders auf dessen Schlüssel verweist.

    Merke: auto_increment ist ein Hilfsmittel zur Schlüsselgenerierung und nichts anderes. Nummerierungen sind mit anderen Mitteln vorzunehmen.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Unser Problem ist, dass wir eine Demokratie entwickelt haben, was nicht immer der richtige Weg ist  --  Bernie Ecclestone zu den lästigen Diskussionen um Regeländerungen in der Formel 1
    1. Hi Rouven,

      Merke: auto_increment ist ein Hilfsmittel zur Schlüsselgenerierung und nichts anderes. Nummerierungen sind mit anderen Mitteln vorzunehmen.

      Danke für die Info, das stand bei dem Tut leider nicht dabei.

      Kannst du mir auch zufälliger Weise bei meinem 2ten Problem helfen?

      Eigentlich hatte ich auch das Problem, das nach erfolgreichem Speichern noch eine komplette Spalte ohne Inhalt mit abgespeichert wurde,
      hat sich wohl von selbst erledigt.

      Hat sich wohl doch nicht von selbst erledigt, ich bekomme nach dem speichern immer eine zusätzliche
      id mit leeren Tabellen Zellen, manchmal 2 oder 3.

      Grüße,
      Engin
       GYRO

      1. Hi,

        Hat sich wohl doch nicht von selbst erledigt, ich bekomme nach dem speichern immer eine zusätzliche
        id mit leeren Tabellen Zellen, manchmal 2 oder 3.

        Dann wird dein Script wohl mehrfach aufgerufen, vermutlich ueber GET.

        Da du ungeschickter Weise immer noch davon ausgehst, die POST-Werte waeren vorhanden, landen dann nur Leerstrings in deiner Query, und es gibt einen leeren Eintrag.
        Du solltest dir angewoehnen, auf das Vorhandensein solcher Werte zu *pruefen* - anstatt einfach davon *auszugehen*, sie muessten schon irgendwie vorhanden sein.

        MfG ChrisB

        1. Hi ChrisB,

          Du solltest dir angewoehnen, auf das Vorhandensein solcher Werte zu *pruefen* - anstatt einfach davon *auszugehen*, sie muessten schon irgendwie vorhanden sein.

          Das wäre dann ein Affenformular richtig? Da hatte ich mich auch schon grad dran versucht,
          aber ich bin zu Müde, ich schau mir das Heute abend nochmal an.

          Danke für den Tip und Gute Nacht!

          Grüße,
          Engin
           GYRO