Daten ändern in mysql mit UPDATE

bhalili

Mitglied
Hallo Leute, ich hab ein Script das mir Mitgliederdaten anzeigt und ich die Möglichkeit habe diese Daten im Formular zu ändern, nur das ändern bzw. das Update der Datenbank funktioniert nicht. Sitze schon seit mehreren Stunden und komme einfach nicht weiter. Hoffe ihr könnt mir ein paar Tips geben.

Folgender Code der user_edit.php:

PHP:
<?
include("design/ap_header.inc.php");
include("check.inc.php");

$username_get = $_GET["username"];
?>
<div class="rubrik">Profil bearbeiten von <?echo $username_get;?></div>
<?
if(isset($_POST["send"]))
{
   if($_POST["vorname"] == "")               {$error        .= "<li>Du musst Deinen Vornamen angeben</li>";}
   if($_POST["nachname"] == "")                {$error        .= "<li>Du musst Deinen Nachnamen angeben</li>";}
   if($_POST["straße"] == "")                 {$error        .= "<li>Du musst Deine Straße angeben</li>";}
   if($_POST["hausnummer"] == "")                 {$error        .= "<li>Du musst Deine Hausnummer angeben</li>";}
   if($_POST["plz"] == "")               {$error        .= "<li>Du musst Deine PLZ angeben</li>";}
   if($_POST["ort"] == "")               {$error        .= "<li>Du musst Deine Stadt angeben</li>";}
   if($_POST["telefon"] == "")               {$error        .= "<li>Du musst Deine Telefonnummer angeben</li>";}
   if($_POST["mobil"] == "")               {$error        .= "<li>Du musst Deine Mobilfunktrufnummer angeben</li>";}
   if($_POST["email"] == "")               {$error        .= "<li>Du musst Deine E-mail angeben</li>";}




   if($error == "")
   {
         $timestamp             =       time();
         $datum                 =       date("d.m.Y",$timestamp);


         $aendern               = "UPDATE mitglieder Set
         vorname                 = '$_POST[vorname]',
         nachname                = '$_POST[nachname]',
         straße                  = '$_POST[straße]',
         hausnummer              = '$_POST[hausnummer]',
         plz                     = '$_POST[plz]',
         ort                     = '$_POST[ort]',
         telefon                 = '$_POST[telefon]',
         mobil                   = '$_POST[mobil]',
         email                   ='$_POST[email]'
         WHERE username         = '$_SESSION[username_mh]'";
         $update = mysql_query($aendern);

         if($update == TRUE){echo "<div class='erfolgreich'>Profildaten wurden gespeichert.</div>";}
   }
   else{echo "<div class='fehler'><ul>$error</ul></div>";}
}




//DB Abfrage anhander des Namens
//Abfrage ohne geschlecht und Altersabfrage

$abfrage = "SELECT * FROM mitglieder WHERE username = '$username_get'";
$ergebnis = mysql_query($abfrage);
$m = mysql_fetch_object($ergebnis);
?>
<a href="user_details.php?username=<?echo $m->username;?>">Zurück zum Profil</a>

<div  style="border:1px solid #c8c8c8;margin-top:20px;background-color:#f3f3f3;margin:auto;width:400px;">
      <form action="<?$PHP_SELF?>"  method="POST">
                 <label>Vorname:</label><input type="text" name="vorname" value="<?echo $m->vorname;?>"></>
                    <div class="clear"></div>
                 <label>Nachname:</label><input type="text" name="nachname" value="<?echo $m->nachname;?>"></>
                    <div class="clear"></div>
                 <label>Straße:</label><input type="text" name="straße" value="<?echo $m->straße;?>"></>
                    <div class="clear"></div>
                 <label>Hausnummer:</label><input type="text" name="hausnummer" value="<?echo $m->hausnummer;?>"></>
                   <div class="clear"></div>
                 <label>PLZ:</label><input type="text" name="plz" value="<?echo $m->plz;?>"></>
                   <div class="clear"></div>
                 <label>Stadt:</label><input type="text" name="ort" value="<?echo $m->ort;?>"></>
                   <div class="clear"></div>
                 <label>Telefon:</label><input type="text" name="telefon" value="<?echo $m->telefon;?>"></>
                   <div class="clear"></div>
                 <label>Mobil:</label><input type="text" name="mobil" value="<?echo $m->mobil;?>"></>
                    <div class="clear"></div>
                 <label>E-Mail:</label><input type="text" name="email" value="<?echo $m->email;?>"></>
                 <div class="clear"></div>
                 <input type="hidden" name="send"></>
                 <input type="submit" value="Speichern"></>
              </form>
              <div class="clear"></div>
</div>
<?
include("design/ap_footer.inc.php");
       ?>
 
- Gibt es eine Fehlrmeldung?
- Wie sieht der Inhalt von $aendern aus wenn du in mit echo ausgibst?
- Was bedeutet überhaupt es funktioniert nicht, was genau geht nicht?

Was vrmutlich Probleme macht ist das du alles POST-Werte in einfachen Anführungszeichen hast. Dadruch werden die Inhalte der Variablen vermutlich nicht in den SQL-String eingetragen.
 
Hallo, es gibt keine Fehlermeldung. Ich bekomme das echo ausgegeben
Code:
echo "<div class='erfolgreich'>Profildaten wurden gespeichert.</div>";
nur in der Datenbank werden die geänderten Felder nicht geschrieben. Habe mir das echo anzeigen lassen von $aendern und es zeigt mir die geänderten Daten. Hier funktioniert der update Befehl nicht. Die geänderten input Felder werden nicht in die mysql Datenbank bzw. in die Tabelle mitglieder geschrieben.
 
Schreib mal nach
PHP:
 $update = mysql_query($aendern);
//Dies rein
 $update = mysql_query($aendern) or die(mysql_error());
das sollte, wenn du etwas Glück hast eine Fehlermeldung ausspucken
 
Außerdem solltest du für Arrayindizes keine Konstanten sondern String benutzen (es sei denn, du hast vorher diese Konstanten las Strings definiert).
 
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Zurück