Update Fehler?

Hangrefer

Mitglied
Hy liebe Board gemeinde,

ich habe mir was gebastelt, wobei ich mal eure Hilfe brauche. Irgendwie geht mein sql Update nicht. Die daten werden geladen ID für ID. Aber ich kann sie eben nicht updaten. Ich gehe auch mal davon aus, das mein Script nicht gerade der Burner ist. aber das ist mir im Moment egal. Den das Updaten soll erstmal gehen^^ Könnete mal einer drüber schauen bitte?


Php Code ist:

PHP:
if($_POST['send'] == "send") {
$db->mysql_query("UPDATE bb".$n."_adress SET name = '$name', vorname = '$vorname', wohnort = '$wohnort', strasse = '$strasse', heusnummer = '$hausnummer', plz = '$plz', email = '$email' WHERE id = '$id'");
  header("Location: adress.php?action=view");
  exit();
}

$result = $db->query("SELECT * FROM bb".$n."_adress WHERE id = '$id'");
while($list = $db->fetch_array($result)){	
  $id = $list['id'];
  $name = $list['name'];
  $vorname = $list['vorname'];
  $wohnort = $list['wohnort'];
  $strasse = $list['strasse'];
  $hausnummer = $list['hausnummer'];
  $plz = $list['plz'];
  $email = $list['email'];
 }

Und der html Teil (Formular):

HTML:
<form action="$adress_edit" method="post">
<input type="hidden" name="send" value="send" />
<input type="hidden" name="action" value="$action" />
<input type="hidden" name="id" value="id" />
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
  <tr>
  <td align="left" class="tabletitle" colspan="3"><span class="smallfont"><b>Bitte alle Felder Wahrheitsgemäß ausfüllen. <font color="red">Alle Adressen sind nur für Registrierte Benutzter sichtbar</b></font></span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">Name:</span></td>   
  <td align="center" class="tablea"><input id="name" type="text" size="40" name="name" value="$name" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte Ihren Richtigen Namen eintragen</span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">Vorname:</span></td>
  <td align="center" class="tablea"><input type="text" size="40" name="vorname" value="$vorname" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte Ihren Richtigen Voramen eintragen</span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">Wohnort:</span></td>
  <td align="center" class="tablea"><input type="text" size="40" name="wohnort" value="$wohnort" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte Ihre Realen Wohnort eintragen</span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">Strasse:</span></td>
  <td align="center" class="tablea"><input type="text" size="40" name="strasse" value="$strasse" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte Ihre Reale Anschrift Eintragen</span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">Nr:</span></td>
  <td align="center"" class="tablea"><input type="text" size="40" name="hausnummer" value="$hausnummer" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte auf die Korrektheit der Hausnummer achten</span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">Plz:</span></td>
  <td align="center" class="tablea"><input type="text" size="40" name="plz" value="$plz" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte Ihre Postleitzahl richtig angeben</span></td>
</tr>
  <tr>
  <td align="left" class="tablea" width="20px"><span class="smallfont">E Mail:</span></td>
  <td align="center" class="tablea"><input type="text" size="40" name="email" value="$email" class="input"></td>
  <td align="left" class="tablea"><span class="smallfont">Bitte Ihren Richtige E Mail Adresse eintragen</span></td>
</tr>
  <tr>
  <td align="center" class="tablea" colspan="3"><input type="submit" name="send" value="Absenden" class="input"><input type="reset" value="Abbrechen" class="input"></td>
</tr>
  <tr>
   <td align="center" class="tablea"><img src="{$style['imagefolder']}/error.png" alt="" title="" /></td>
  </tr>
</table>
</form>

ICh weis erlich gesagt nicht woran das liegt. Bitte helft mir hihi
 
Hi,

ja, zum Beispiel. Nur solltest Du für Strings mysql_real_escape_string verwenden.

LG

Nachtrag: Und in der Form ist das natürlich Quatsch. Meintest Du's so?

PHP:
$name = mysql_real_escape_string($_POST['name']);
 
Zuletzt bearbeitet:
Hi,

ja, zum Beispiel. Nur solltest Du für Strings mysql_real_escape_string verwenden.

LG

Nachtrag: Und in der Form ist das natürlich Quatsch. Meintest Du's so?

PHP:
$name = mysql_real_escape_string($_POST['name']);

LÖL das dachte ich mir ... Ist es dann eventuell so richtig?

PHP:
$db->mysql_real_escape_string("UPDATE bb".$n."_adress SET name = '".addslashes($_POST['name'])."', vorname = '".addslashes($_POST['vorname'])."', wohnort = '".intval($_POST['wohnort'])."', strasse = '".intval($_POST['strasse'])."', hausnummer = '".intval($_POST['hausnummer'])."', plz = '".intval($_POST['plz'])."', email = '".intval($_POST['email'])."' WHERE id = '".$_POST['id']."'");

Und Ist den das Formular wenigstens richtig?...
 
Hi,

Ist es dann eventuell so richtig?

PHP:
$db->mysql_real_escape_string("UPDATE bb".$n."_adress SET name = '".addslashes($_POST['name'])."', vorname = '".addslashes($_POST['vorname'])."', wohnort = '".intval($_POST['wohnort'])."', strasse = '".intval($_POST['strasse'])."', hausnummer = '".intval($_POST['hausnummer'])."', plz = '".intval($_POST['plz'])."', email = '".intval($_POST['email'])."' WHERE id = '".$_POST['id']."'");

Nein, was soll da denn bei herauskommen? Du sollst addslashes durch mysql_real_escape_string ersetzen. Warum benutzt Du für einige Felder, die doch bestimmt Strings sind (Wohnort, Strasse,...) intval()?
Und die id will auch geprüft sein.

Bevor Du fragst, ob das richtig ist, lass Dir doch die zusammengesetzte Abfrage einfach mal ausgeben, dann siehst Du doch, was rauskommt.

Und Ist den das Formular wenigstens richtig?...

Woher soll ich wissen, ob das das ist, was Du haben willst? ;)
Mach in Deinem Script testhalber ein print_r($_POST), dann siehst Du, ob die Daten wie gewünscht ankommen.

LG
 
So meine Daten in der Tabelle werden noch immer angezeigt. aber wenn ich was ändern möchte und auf Speichern klicken BLEIBT dennoch alles beim alten.. ich werde gleich irre ^^
 
Fällt Dir hier was auf?

PHP:
<form action="$adress_edit" method="post">

also wenn die Variable $adress_edit definiert ist, dann sollte es gehen. Ansonsten musst du schon die Datei angeben an welche du es shcicken willst.
Da ich an Deiner SQL-Abfrage sehe das es sich um das WBB handelt und ich noch keine Templates gesehen habe wo das Form-Action per Variable übergeben wird, denk ich mal das dort dein fehler liegt.
 
Danke euch beiden. Der tipp von @Maniac_81, war Super nun geht es. Danke danke ..

Jetzt habe ich nur noch das Problem das ich das Löschen der Einträge (per ID ausgewählt) nicht hin bekomme. Aber da Schreibe ich dann nochmal hier im Thread wenn ich nicht weiter komme.

Mfg..Hangerfer
 
Zurück