Datenbank-Update geht nicht

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

  • Datenbank-Update geht nicht

    Hallo, ja der Anfänger schon wieder :-)

    So, Daten neu eintragen hat jetzt funktioniert. Jetzt habe ich ein Problem mit den Updaten. Ich habe schon einiges getestet, aber hat leider nicht funktioniert.

    Ich poste mal meine Seite:

    PHP-Code:
    <html>
    <head>
    <title>Unbenanntes Dokument</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <?php
        
    include("./inc/dbconnect.php");
        
      
    $id $HTTP_POST_VARS["id"];
      
    $vorname $HTTP_POST_VARS["vorname"];
      
    $nachname $HTTP_POST_VARS["nachname"];
      
    $info $HTTP_POST_VARS["info"];
      
    $timestamp $HTTP_POST_VARS["timestamp"]; 
    ?>
    </head>
    <?php

    // Definition der DatenbankAnfrage
    $DATENSATZ_AKTUALISIEREN="UPDATE testdb SET id=$id,vorname=$vorname,nachname=$nachname,info=$info,timestamp=$timestamp WHERE id=$id";

    // Ausführen der obigen Definition, - Der Datensatz mit der id='$id' wird aktualisiert
    $AUSFUEHREN_AKTUALISIEREN=MYSQL_QUERY($DATENSATZ_AKTUALISIEREN);


    /*  $aendern = "UPDATE INTO $DB_TABLE (id, vorname, nachname, info, timestamp)
      VALUES ('$id', '$vorname', '$nachname', '$info', NOW())";
      
      $update = mysql_query($aendern);
    */  
      
    var_dump($HTTP_POST_VARS);

    ?>
    <body>
    <br>
    <hr>
    Folgende Daten wurden eingetragen!
    <table width="95%">
        <tr>
            <td>ID:</td>
            <td>Vorname:</td>
            <td>Nachname:</td>
            <td>Info:</td>
            <td>Timestamp</td>
        </tr>
        <tr>
            <td><?php echo($id?></td>
            <td><?php echo($vorname?></td>
            <td><?php echo($nachname?></td>
            <td><?php echo($info?></td>
            <td><?php echo($timestamp?></td>
        </tr>
    </table>
    <br>
    <hr>
    Zurück zur Startseite!
    <br>
    <a href="./index.php">STARTSEITE</a>
    </body>
    </html>
    Die Daten werden richtig in meiner Tabelle angezeigt. Nur in der Datenbank hat sich nichts geändert.

    Irgendwo ist wohl der Wurm drin. Wäre super wenn mir jemand diesen Wurm zeigen kann oder einen Tip geben.

    Danke schon mal

    Gruß

  • #2
    PHP-Code:

    $DATENSATZ_AKTUALISIEREN
    ="UPDATE testdb SET id=$id,vorname=$vorname,nachname=$nachname,info=$info,timestamp=$timestamp WHERE id=$id"
    jeden Wert in einfache Anführungszeichen
    bsp:
    PHP-Code:

    $DATENSATZ_AKTUALISIEREN
    ="UPDATE testdb SET id='$id',vorname='$vorname'.... 
    ausserdem hilf oft ein
    PHP-Code:
    echo mysql_error(); 
    nach mysql_query, um zu sehen das die query falsch ist.

    gruss

    rth
    H I L F E
    GD FreeType Antialising
    Gesuch PHP Entwicklungsumgebung
    ------------------------------------------
    Der Cmabrigde rael tset, sruf whoin du wlilst

    Kommentar


    • #3
      Hallo,

      DANKE SCHÖN für die Antwort.

      Leider funzt es noch nicht.

      Der Fehler kann doch nur in dieser Seite liegen, oder? Die Daten bekomme ich ja richtig angezeigt. Habe auch das echo mysql_error(); eingetragen. Bekomme aber keiner Fehler angezeigt.

      Den MySQL-Code habe ich mal in PhpMyAdmin getestet, der geht.

      Was könnte noch falsch sein?

      *grübel*

      Jetzt sieht mein Code so aus:

      PHP-Code:
      <html>
      <head>
      <title>Unbenanntes Dokument</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <?php
          
      include("./inc/dbconnect.php");
          
        
      $id $HTTP_POST_VARS["id"];
        
      $vorname $HTTP_POST_VARS["vorname"];
        
      $nachname $HTTP_POST_VARS["nachname"];
        
      $info $HTTP_POST_VARS["info"];
        
      $timestamp $HTTP_POST_VARS["timestamp"]; 
      ?>
      </head>
      <?php

      // Definition der DatenbankAnfrage
      $DATENSATZ_AKTUALISIEREN="UPDATE testdb SET id='$id',vorname='$vorname',nachname='$nachname',info='$info',timestamp='$timestamp' WHERE id='$id'";

      // Ausführen der obigen Definition, - Der Datensatz mit der id='$id' wird aktualisiert
      $AUSFUEHREN_AKTUALISIEREN=MYSQL_QUERY($DATENSATZ_AKTUALISIEREN);

      echo 
      "<hr>";
      echo 
      mysql_error();

      /*  $aendern = "UPDATE INTO $DB_TABLE (id, vorname, nachname, info, timestamp)
        VALUES ('$id', '$vorname', '$nachname', '$info', NOW())";
        
        $update = mysql_query($aendern);
      */  
        
      var_dump($HTTP_POST_VARS);

      ?>
      <body>
      <br>
      <hr>
      Folgende Daten wurden eingetragen!
      <table width="95%">
          <tr>
              <td>ID:</td>
              <td>Vorname:</td>
              <td>Nachname:</td>
              <td>Info:</td>
              <td>Timestamp</td>
          </tr>
          <tr>
              <td><?php echo($id?></td>
              <td><?php echo($vorname?></td>
              <td><?php echo($nachname?></td>
              <td><?php echo($info?></td>
              <td><?php echo($timestamp?></td>
          </tr>
      </table>
      <br>
      <hr>
      Zurück zur Startseite!
      <br>
      <a href="./index.php">STARTSEITE</a>
      </body>
      </html>

      Kommentar


      • #4
        und was für ein Fehler wird angezeigt von mysql_error() ?

        der fehler könnte auch in

        PHP-Code:

            
        include("./inc/dbconnect.php"); 
        also in der datei dbconnect.php liegen.

        gruss

        rth
        Zuletzt geändert von RobertTheHero; 26.08.2003, 08:38.
        H I L F E
        GD FreeType Antialising
        Gesuch PHP Entwicklungsumgebung
        ------------------------------------------
        Der Cmabrigde rael tset, sruf whoin du wlilst

        Kommentar


        • #5
          Hi,

          ich bekomme eben keinen Fehler angezeigt. Ich glaube ich habe jetzt aber den Fehler? Irgendwie wird meine Variable $id nicht übermittelt. Ich poste hier mal meine Site date_bearbeiten.php. In diesem Formular lese ich die Daten ein, verändere sie und will die Daten an daten_speicher2.php senden.

          PHP-Code:
          <html>
          <head>
          <title>Unbenanntes Dokument</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          <?php
              
          include("./inc/dbconnect.php");

              
          $AUSWAHL=MYSQL_QUERY(" SELECT * FROM testdb WHERE id='$id' ");
              
          $ANZEIGEN=MYSQL_FETCH_ROW($AUSWAHL);
              
          ?>
          </head>
          <body>

          <?php echo $id ?>
          <?php 
          echo $ANZEIGEN[2?>

          #<?php  var_dump($HTTP_POST_VARS); ?>


           <form name="daten_speichern2" method="post" action="./daten_speichern2.php">
          ID: <input type="text" name="id" value="<?php echo $ANZEIGEN[0?>" disabled><br>
          Vorname: <input type="text" name="vorname" value="<?php echo $ANZEIGEN[1?>"><br>
          Nachname: <input type="text" name="nachname" value="<?php echo $ANZEIGEN[2?>"><br>
          Info: <input type="text" name="info" value="<?php echo $ANZEIGEN[3?>"><br>
          Timestamp: <input type="text" name="timestamp" value="<?php echo $ANZEIGEN[4?>" disabled>
          <input type="submit" name="Submit" value="Abschicken">

          </form>
          </body>
          </html>
          *habe schon Kopfschmerzen von suchen*

          Danke schön

          Die ./inc/dbconnect.php ist ok.

          Kommentar


          • #6
            das liegt an dem disabled im input tag von der id. Das bewirkt das die id nicht mitgesendet wird. Mach statdessen
            PHP-Code:
            <input type="hidden" name="id" value="<?php echo $ANZEIGEN[0?>">
            gruss

            rth
            H I L F E
            GD FreeType Antialising
            Gesuch PHP Entwicklungsumgebung
            ------------------------------------------
            Der Cmabrigde rael tset, sruf whoin du wlilst

            Kommentar


            • #7
              commit on success

              Also bei einem update und insert werde die daten einmalig eingetragen!
              Was aber nicht heißt, das die Daten übernommen werden!

              Zu Zweck der Datensicherung muß nach dem Query, also nach dem Update, bzw Insert ein COMMIT folgen!

              Schau mal im Manual bei www.mysql.de nach!

              :-)

              geister!

              Kommentar


              • #8
                Link vergessen

                http://www.mysql.de/doc/de/COMMIT.html

                Kommentar


                • #9
                  @RobertTheHero

                  DANKE

                  Das DISABLED war schuld. Kleines Wort mit großer Wirkung. Das nächste mal weiß ich bescheid.

                  Gruß

                  Kommentar


                  • #10
                    Re: commit on success

                    Original geschrieben von geister
                    Zu Zweck der Datensicherung muß nach dem Query, also nach dem Update, bzw Insert ein COMMIT folgen!
                    das ist bei einigen grösseren DB-systemen der fall - aber nicht bei mysql!
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      @ wahsaga

                      @ wahsaga

                      Hast recht, ich arbeite mit Oracle und da brauch ich das!

                      deswegen ist mit eben das feheln des Commit aufgefallen ;-)

                      hehe

                      Kommentar

                      Lädt...
                      X