alkativo: In die Datenbank wird immer zweimal geschrieben

Hi,

immer wenn ich einen neuen DAtensatz eintragen will, kommen 2 raus. Woran kann da liegen? Hier der Code:

$r_insert_abteilung = mysql_query("INSERT INTO abteilungen ( id , abteilung )VALUES ('', '$speicherfeld') ;");

echo "<script>window.location.href="verzeichnis_neu_abtei.php";</script>";

Vielen Dank

  1. Hallo alkativo!

    immer wenn ich einen neuen Datensatz eintragen will, kommen 2 raus. Woran kann da liegen? Hier der Code:
    $r_insert_abteilung = mysql_query("INSERT INTO abteilungen ( id , abteilung )VALUES ('', '$speicherfeld') ;");

    Also, wenn diese Abfrage nur einmal ausgeführt wird, wird der Datensatz auch nur einmal eingefügt.
    Du mußt also prüfen, ob dieser Befehl vielleicht an anderer Stelle in Deinem Script nochmal aufgerufen wird.
    Warum Du JavaScript-Code ausgibst versteh ich zwar nicht, aber die Ausgabe an sich ist auch ziemlich egal.

    MfG
    Götz

    --
    Losung für Dienstag, 21. September 2004
    Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
    Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
    (http://www.losungen.de/heute.php3)
    1. Hallo Götz,

      der Befehl, bzw. die Zeile wird nur einmal ausgeführt. Er schreibt es aber trotzdem 2 mal. Das ist wie verhext. Ist nicht so als hätte ich noch nie nen Eintrag gemacht oder so.

      Cu

      1. Hallo alkativo!

        der Befehl, bzw. die Zeile wird nur einmal ausgeführt. Er schreibt es aber trotzdem 2 mal.

        Nein. Der Befehl fügt die Daten nur einmal ein. Am Befehl an sich liegt es imho definitiv nicht.
        Bau mal Debug-Ausgaben (geschickt vielleicht direkt bevor/nachdem Du den SQL-Befehl ausführst) in Deinen Code ein und setze am Anfang des Scriptes error_reporting(E_ALL); - villeicht kommst Du ja so dem Problem näher.

        MfG
        Götz

        --
        Losung für Dienstag, 21. September 2004
        Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
        Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
        (http://www.losungen.de/heute.php3)
        1. Hallo ich hab es gefunden. Also ein Javascript überprüft ob etwas eingegeben wurde und ob der Datensatz schon vorhanden ist. Dann kann man erst weiterkommen. Der Butten hierfür ist aber ein Submit Button und hat es leider praktisch zweimal abgeschickt. Einmal der Button und ein mal das Formular mit onSubmit. Ich hab den Button jetzt in type = Button veränndert und jetzt rockt es. Vielen Dank und bis die Tage..

          1. Hallo alkativo!

            Also ein Javascript überprüft ob etwas eingegeben wurde und ob der Datensatz schon vorhanden ist. [...]

            Es wäre gut, wenn Du das zusätzlich auch noch serverseitig prüfst, schließtlich hat nicht jeder JavaScript aktiviert.

            MfG
            Götz

            --
            Losung für Dienstag, 21. September 2004
            Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
            Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
            (http://www.losungen.de/heute.php3)
      2. Also,

        wenn ich

        INSERT INTO abteilungen ( id , abteilung)VALUES ('', '$speicherfeld')

        in phpmyadmin benutze, dann macht er das nur einmal, in meinem Script macht er aber 2 Einträge. Zwischen <? und ?> steht aber nur eine Zeile. Woran kann das liegen? AN der DAtenbank, oder am Server oder waruan auch immer?

        1. Hallo alkativo!

          Woran kann das liegen? AN der DAtenbank, oder am Server oder waruan auch immer?

          Weder noch.
          Glaubs mir, es liegt _definitiv_ an Deinem Script.
          Bau Debug-Ausgaben ein, vielleicht sieht man ja dann schon, wo's hängt.

          MfG
          Götz

          --
          Losung für Dienstag, 21. September 2004
          Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
          Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
          (http://www.losungen.de/heute.php3)
  2. yo,

    immer wenn ich einen neuen DAtensatz eintragen will, kommen 2 raus. Woran kann da liegen?

    hmm, bei oracle gibt es ein zeichen für befehlswiederholung das '/'. bei mysql bin ich mir nicht sicher, aber nimm doch mal das ';' aus dem mysql statement.

    Ilja

    1. Hallo Ilja!

      hmm, bei oracle gibt es ein zeichen für befehlswiederholung das '/'. bei mysql bin ich mir nicht sicher, aber nimm doch mal das ';' aus dem mysql statement.

      Also der ; steht auf jeden Fall nicht für Befehlswiederholung.
      (Soweit ich weiß beendet ; einen Befehl. Auf http://dev.mysql.com/doc/mysql/en/Extensions_to_ANSI.html hab ich beim Überfliegen auch nicht von einem Wiederholungsbefehl gelesen)

      MfG
      Götz

      --
      Losung für Dienstag, 21. September 2004
      Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
      Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
      (http://www.losungen.de/heute.php3)
  3. Hi,

    immer wenn ich einen neuen DAtensatz eintragen will, kommen 2 raus. Woran kann da liegen? Hier der Code:

    Wie überprüfst Du das?
    Ist die id-Spalte auto-increment?
    Haben beide Exemplare der doppelten Datensätze dieselbe ID?

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  4. hi,

    $r_insert_abteilung = mysql_query("INSERT INTO abteilungen ( id , abteilung )VALUES ('', '$speicherfeld') ;");

    echo "<script>window.location.href="verzeichnis_neu_abtei.php";</script>";

    und welchen code beinhaltet "verzeichnis_neu_abtei.php2, auf das du hier mit javascript weiterleitest ...?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."