item: MySQL-Update (wird nicht korrekt ausgeführt)

Hallo,
ich habe mich in letzter Zeit etwas mit PHP auseinandergesetzt, und wollte nun für mein Wiki eine Art "WikiControl" machen. Leider aber, habe ich beim Benutzerdaten-Editieren einen Fehler gemacht. Ich finde den einfach nicht... In der Hoffnun jemand findet ihn, frage ich also hier im Forum. :-)

<pre>
<?php
$host="localhost";
$username="web1";
$password="tja...";
$db_name="wiki";
$tbl_name="user";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("keinen Kontakt zur Datenbank!");

$user_id=$_GET['user_id'];

$sql="UPDATE $tbl_name SET user_id='$user_id', user_name='$user_name', user_email='$user_email' WHERE user_id='$user_id'";
$result=mysql_query($sql) or die(mysql_error());

if($result){
echo "<span style="font-family: Arial, Helvetica, sans-serif;  font-weight: bold; font-size: large;">Benutzerdaten ändern</span>";
echo "<BR>";
echo "<BR>";
echo "<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Du hast die Benutzeradaten erfolgreich geändert!</span>";
echo "<BR>";
echo "<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: black;"><a href='index.html'>Zurück zur Übersicht</a></span>";
}

else {
echo "<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: black;">Error! Da ging was schief! Versuchs nochmals!</span>";
}

?>
</pre>

Gruss,
Item

  1. Hi,

    $sql="UPDATE $tbl_name SET user_id='$user_id', user_name='$user_name', user_email='$user_email' WHERE user_id='$user_id'";

    Und Kontrollausgabe dieser dynamisch generierten Query ergibt was?

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
    1. Hi,

      oups - das hätte ich vielleicht auch noch sagen sollen. :-)
      Die Befehle werden von dieser Datei gesendet:

      <pre>
      <?php
      $host="localhost";
      $username="web1";
      $password="XXX";
      $db_name="wiki";
      $tbl_name="user";

      mysql_connect("$host", "$username", "$password")or die("cannot connect");
      mysql_select_db("$db_name")or die("cannot select DB");

      $user_id=$_GET['user_id'];

      $sql="SELECT * FROM $tbl_name WHERE user_id='$user_id'";
      $result=mysql_query($sql);

      $rows=mysql_fetch_array($result);
      ?>
      <p><span class="willkommen">Benutzerdaten &auml;ndern - WikiControl 1.0 Beta </span></p>
      <form name="form1" method="post" action="update_ac.php"
      <table width="602" border="0"  cellpadding="3" cellspacing="1">
      <tr>
      <td class="arial"><table width="664" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
        <tr>
          <td width="18" background="button.png"  bgcolor="#ffffff" class="arial_weiss">ID</td>
       <td width="182" background="button.png" bgcolor="#ffffff" class="arial_weiss">Benutzername</td>
        <td width="183" background="button.png" bgcolor="#ffffff" class="arial_weiss">Echter Name</td>
          <td width="302" background="button.png" bgcolor="#ffffff" class="arial_weiss">Email-Adresse</td>
        </tr>
        <tr>
          <td bgcolor="#ffffff" class="arial" ><input name="user_id" type="text" id="user_id" value="<? echo $rows['user_id']; ?>" size="3">
          </td>
        <td bgcolor="#ffffff" class="arial" ><input name="user_name" type="text" id="user_name" value="<? echo $rows['user_name']; ?>" size="30">
       </td>
       <td bgcolor="#ffffff" class="arial" ><input name="user_name" type="text" id="user_name" value="<? echo $rows['user_real_name']; ?>" size="30">
       </td>
          <td bgcolor="#ffffff" ><em><span class="status_ok"><input name="user_email" type="text" id="user_email" value="<? echo $rows['user_email']; ?>" size="40">
          </span></em></td>
        </tr>
      </table>
        <br />
        <input type="submit" name="Submit" value="Daten ändern">
        <input name="user_id" type="hidden" id="user_id" value="<? echo $rows['user_id']; ?>" />
        <a href="index.php" class="link">zur&uuml;ck zur &Uuml;bersicht  </a>
      </form>
        <?

      mysql_close();

      ?>

      </pre>

      MfG, Item

      1. Hi,

        <td bgcolor="#ffffff" class="arial" ><input name="user_name" type="text" id="user_name" value="<? echo $rows['user_name']; ?>" size="30">
        </td>
        <td bgcolor="#ffffff" class="arial" ><input name="user_name" type="text" id="user_name" value="<? echo $rows['user_real_name']; ?>" size="30">

        Fällt dir etwas auf, wenn du die beiden input- Felder vergleichst?

        Was liest das Zielprogramm unter $_POST["user_name"] ?

        Kalle

      2. Hi,

        oups - das hätte ich vielleicht auch noch sagen sollen. :-)
        Die Befehle werden von dieser Datei gesendet:

        Ich wollte von dir wissen, was eine absolut elementare Debug-Masznahme fuer ein Ergebnis bringt - und nicht, dass du uns noch mehr Code vorwirfst.

        MfG ChrisB

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
      3. $user_id=$_GET['user_id'];
        <form name="form1" method="post" action="update_ac.php"

        Fällt dir an diesen beiden Zeilen was auf? Du übergibst die Informationen mit POST aber fragst sie mit GET ab.

        $user_id=$_GET['user_id'];
        $sql="UPDATE $tbl_name SET user_id='$user_id', user_name='$user_name', user_email='$user_email' WHERE user_id='$user_id'";

        Hier dürfte das zweite Problem liegen. Du trägst bei user_name den Wert $user_name ein. Woher soll dein Script wissen was in $user_name drin steht.

  2. Mahlzeit,

    Leider aber, habe ich beim Benutzerdaten-Editieren einen Fehler gemacht. Ich finde den einfach nicht... In der Hoffnun jemand findet ihn, frage ich also hier im Forum. :-)

    Wie sollte IRGENDJEMAND den Fehler finden, wenn Du nicht mal eine vernünftige Fehlerbeschreibung lieferst?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo,

      das IST ja gerade das Problem. Das Skript wird korrekt ausgeführt, und gibt auch keinen php bzw. mysql-error zurück. Alles scheint zu klappen. Doch dei Tabelle/Zeile selbst, wird nicht aktualisiert.

      MfG,
      Item

  3. Hi!

    Ein paar Fragen bezüglich deines Skriptes.

    Wo/Wie wird der Inhalt von $_GET['user_id'] festgelegt?

    $user_id=$_GET['user_id'];

    Woher kommen die Inhalte von $user_id, $user_name und $user_email? Wenn das die Daten aus dem Formular sein sollen, musst du diese über bspw. $_POST["user_name"] ansprechen.

    $sql="UPDATE $tbl_name SET user_id='$user_id', user_name='$user_name', user_email='$user_email' WHERE user_id='$user_id'";

    Ansonsten lass doch mal per echo $sql ausgeben, um zu sehen, wie die ausgefüllte Abfrage aussieht.

    Grüße
    crille