Forum
Öffentliche Foren |
FORUM: Spiele & Computer THEMA: [PHP] MYSQL Update funktioniert nicht | |
AUTOR | BEITRAG |
Bender
RANG Deckschrubber |
#1 - 26.03 17:51 Hallo,ich habe hier ein Formular erstellt womit ich mysql daten über "mysql-update" ändern will. Ich kann zwar die daten eintragen und abschicken, aber sie werden nicht in der mysql tabelle gespeichert... kann mir jemand sagen wo der fehler liegt? Ich weiss nicht mehr weiter. Hier der Code: ------------------------------------------------- case edit: if(isset($_POST['select']) AND "Benutzer auswählen" == $_POST['select']) { $_SESSION['uid'] = $_POST['uid']; $sql = "SELECT ID, Vorname, Nachname, Nickname, Ort, Geburtstag, Text, Date FROM $friendz WHERE ID = '".$_SESSION['uid']."';"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result); echo "<center>\n"; echo "<form action=\"index.php?section=admin&site=admin_friendz&action=edit\"method=\"post\">\n"; echo "<u>//".$row['Vorname']."'s Profil bearbeiten//</u>\n"; echo "<br>\n"; echo "<br>\n"; echo "<label for=\"vorname\">Vorname</label>\n"; if(empty($row['Vorname'])) echo " <input type=\"text\" name=\"vorname\" id=\"vorname\" value=\"N⁄A\"/>\n"; else { echo " <input type=\"text\" name=\"vorname\" id=\"vorname\" value=\"".$row['Vorname']."\"/>\n"; } echo "<br>\n"; echo "<label for=\"nachname\">Nachname</label>\n"; if(empty($row['Nachname'])) echo " <input type=\"text\" name=\"nachname\" id=\"nachname\" value=\"N⁄A\"/>\n"; else { echo " <input type=\"text\" name=\"nachname\" id=\"nachname\" value=\"".$row['Nachname']."\"/>\n"; } echo "<br>\n"; echo "<label for=\"nickname\">Nickname</label>\n"; if(empty($row['Nickname'])) echo " <input type=\"text\" name=\"nickname\" id=\"nickname\" value=\"N⁄A\"/>\n"; else { echo " <input type=\"text\" name=\"nickname\" id=\"nickname\" value=\"".$row['Nickname']."\"/>\n"; } echo "<br>\n"; echo "<label for=\"ort\">Ort</label>\n"; if(empty($row['Ort'])) echo " <input type=\"text\" name=\"ort\" id=\"ort\" value=\"N⁄A\"/>\n"; else { echo " <input type=\"text\" name=\"ort\" id=\"ort\" value=\"".$row['Ort']."\"/>\n"; } echo "<br>\n"; echo "<label for=\"geburtstag\">Geburtstag</label>\n"; if(empty($row['Geburtstag'])) echo " <input type=\"text\" name=\"geburtstag\" id=\"geburtstag\" value=\"N⁄A\"/>\n"; else { echo " <input type=\"text\" name=\"geburtstag\" id=\"geburtstag\" value=\"".$row['Geburtstag']."\"/>\n"; } echo "<br>\n"; echo "<label for=\"date\">Date</label>\n"; if(empty($row['Date'])) echo " <input type=\"text\" name=\"date\" id=\"date\" value=\"N⁄A\"/>\n"; else { echo " <input type=\"text\" name=\"date\" id=\"date\" value=\"".$row['Date']."\"/>\n"; } echo "<br>\n"; echo "<label for=\"text\">Text</label>\n"; if(empty($row['Text'])) echo "<textarea rows=8 cols=25 name=text id=text>N⁄A</textarea>\n"; else { echo "<textarea rows=8 cols=25 name=text id=text>".$row['Text']."</textarea>\n"; } echo "<br>\n"; echo "<br>\n"; echo "<input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n"; echo "<input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n"; echo "<input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n"; echo "</form>\n"; echo "</center>\n"; echo "<br>\n"; echo "<br>\n"; back2admin(); } else { if(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) { $sql2 = "UPDATE $friendz SET Vorname = '($_POST['vorname'])', Nachname = '($_POST['nachname'])', Nickname = '($_POST['nickname'])', Ort = '($_POST['ort'])', Geburtstag = '($_POST['geburtstag'])', Text = '($_POST['text'])', Date = '($_POST['date'])' WHERE ID = '".$_SESSION['ID']."'"; mysql_query($sql2) OR die(mysql_error()); echo "<center>\n"; echo "<b>Ihre Daten wurde gespeichert</b>\n"; echo "<br>\n"; back2admin(); echo "</center>\n"; } else { echo "<center>\n"; echo "<form ". "action=\"index.php?section=admin&site=admin_friendz&action=edit\" ". "method=\"post\" ". "class=\"formular\">\n"; echo "<u>//Benutzer bearbeiten//\n</u></>"; $sql = "SELECT ID, Vorname, Nachname, Nickname, Ort, Geburtstag, Text, Date FROM $friendz ORDER BY Nickname ASC;"; $result = mysql_query($sql) OR die(mysql_error()); echo "<br>\n"; echo "<br>\n"; echo "<select id=\"nickname\" name=\"uid\">\n"; echo "<br>\n"; echo "<br>\n"; echo "<option value=\"0\" selected=\"selected\">Bitte einen User wählen</option>\n"; while($row = mysql_fetch_assoc($result)) { echo "<option value=\"".$row['ID']."\">".$row['Nickname']."</option>\n"; } echo "</select>\n"; echo "<br>\n"; echo "<br>\n"; echo "<input type=\"submit\" name=\"select\" value=\"Benutzer auswählen\" />\n"; echo "<input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n"; echo "<input type=\"hidden\" name=\"".session_name()."\" ". "value=\"".session_id()."\" />\n"; echo " </li>\n"; echo "</form>\n"; back2admin(); echo "</center>\n"; } } break; ------------------------------------------------- |
fishbone
RANG Deckschrubber |
#2 - 26.03 19:00 Nur mal die ersten Zeilen überflogen und dabei das entdeckt:WHERE ID = '".$_SESSION['uid']."';"; Warum ist das erste Semikolon da? Das gehört da definitiv nicht hin! Total unordentlich, da hab ich schon gar keine Lust mehr, bis zum Ende zu lesen. Sorry. |
deluxe *im ganz normalen Prüfungswahnsinn*
RANG Master of Clanintern |
#3 - 26.03 21:11 Packs in ein Pastebin bzw. nopaste ding...nopaste.php-quake.net |
Crush (steht auf die extremeren Sachen)
RANG Deckschrubber |
#4 - 26.03 21:18 Hat zwar nichts mit deinem Problem zu tun, aber überleg mal was passiert, wenn ich in dein Formular als Vornamecode: PWNZORED'; DROP TABLE $friendz; Alle Strings, die du von dem User erhälst, IMMER durch mysql_real_escape_string schicken, ansonsten kann ein gewiefter Hacker mit deiner Datenbank machen was er will. |
*al!ve* - Vorbereitung aufs Urlaubssemester
RANG Master of Clanintern |
#5 - 27.03 01:12 So ganz allgemein kann da mysql_error() recht gut helfen.d |
Bender
RANG Deckschrubber |
#6 - 27.03 15:22 Hab jetzt mit error_reporting(E_ALL); gearbeitet und alle angezeigten fehler beseitigt^^. Jetzt hab ich nur noch ein problem. Wenn ich etwas ediere ändert er immer die daten aus der ersten Zeile also "ID 1" und ich versteh nicht wieso. Kann mir da jemand von euch weiter helfen oder tips geben was der fehler sein könnte? |
*al!ve* - Vorbereitung aufs Urlaubssemester
RANG Master of Clanintern |
#7 - 27.03 18:24 Du sollst nicht error_reporting sondern mysql_error verwenden. Error_reporting liefert dir PHP-Fehler (und Warnungen), von MySQL-Fehlern wirst du da nichts mitbekommen.Außerdem könntest du dir mal $_SESSION['ID'] ausgeben lassen. Evtl steht da ja ausschließlich ne 1 drin? |