08. februar 2007 - 21:04
Der er
4 kommentarer og 1 løsning
SQL Update problem
Jeg skal opdatere nogle poster i en MySQL db, men når jeg gør det, ændrer den intet i databasen, og jeg kan simpelthent ikke finde fejlen. Jeg bruger 2 nedenstående filer: [edit.php] -------------------------------------------------- ... <? include("database.php"); $edit_user = mysql_query("SELECT * FROM users WHERE username='$session->username'") or die(mysql_error()); $e_user = mysql_fetch_array($edit_user); ?> <form action="edit2.php" method="POST"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr> <td>Email:</td> <td><input type="text" name="email" maxlength="50" value="<? echo $e_user[email]; ?>"> </td> </tr> <tr> <td>Age:</td> <td><input type="text" name="age" maxlength="50" value="<? echo $e_user[age]; ?>"> </td> </tr> <tr> <td>Msn:</td> <td><input type="text" name="msn" maxlength="50" value="<? echo $e_user[msn]; ?>"> </td> </tr> <tr><td colspan="2" align="right"> <input type="submit" value="Edit Account"></td></tr> <tr><td colspan="2" align="left"></td></tr> </table> </form> <? ... -------------------------------------------------- [edit2.php] -------------------------------------------------- <?php include("database.php"); mysql_query("UPDATE users SET email = '$email', age = '$age', msn = '$msn' WHERE username = '$usrname'") or die(mysql_error()); ?>
Annonceindlæg fra itm8
08. februar 2007 - 21:09
#1
har du global variables sat til? hvis ikke skal din edit2.php nok se sådan ud: <?php include("database.php"); $email = $_POST['email']; $age = $_POST['age']; $msn = $_POST['msn']; mysql_query("UPDATE users SET email = '$email', age = '$age', msn = '$msn' WHERE username = '$usrname'") or die(mysql_error()); ?> men hvor får du $usrname fra? og er age en INT i din DB?
09. februar 2007 - 14:43
#2
age er TINYTEXT i min db, og usrname får jeg fra en include, som jeg ikke havde skrevet herinde.
09. februar 2007 - 14:50
#3
har ændret en smule (insat det du skrev, og slettet email update), så det nu ser således ud: [edit2.php] ------------------------------------------------- <?php include("database.php"); include("sessions.php"); $age = $_POST['age']; $msn = $_POST['msn']; $updt = mysql_query("SELECT * FROM users WHERE username = '$session->username'") or die(mysql_error()); if (mysql_numrows($updt) < 1)){ mysql_query("INSERT INTO user (age, msn) VALUES ('$age', '$msn')"); } else { mysql_query("UPDATE users SET age = '$age', msn = '$msn' WHERE username = '$session->username'") or die(mysql_error()); } ?> --------------------------------------------- [edit.php] --------------------------------------------- [edit.php] -------------------------------------------------- ... <? include("database.php"); $edit_user = mysql_query("SELECT * FROM users WHERE username='$session->username'") or die(mysql_error()); $e_user = mysql_fetch_array($edit_user); ?> <form action="edit2.php" method="POST"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr> <td>Age:</td> <td><input type="text" name="age" maxlength="50" value="<? echo $e_user[age]; ?>"> </td> </tr> <tr> <td>Msn:</td> <td><input type="text" name="msn" maxlength="50" value="<? echo $e_user[msn]; ?>"> </td> </tr> <tr><td colspan="2" align="right"> <input type="submit" value="Edit Account"></td></tr> <tr><td colspan="2" align="left"></td></tr> </table> </form> ------------------------------------------ Men når edit2.php bliver loadet, kommer der bare en blank side som om den stopper et sted i koden.. men hvor :P
09. februar 2007 - 14:55
#4
Glemte lige at indsætte username også :P $updt = mysql_query("SELECT * FROM users_ext WHERE username = '$session->username'") or die(mysql_error()); if (mysql_numrows($updt) < 1)){ mysql_query("INSERT INTO user_ext (username, age, msn) VALUES ('$session->username', '$age', '$msn')"); } else { mysql_query("UPDATE users_ext SET age = '$age', msn = '$msn' WHERE username = '$session->username'") or die(mysql_error()); } men stadig samme fejl..
11. februar 2007 - 17:44
#5
.
Computerworld tilbyder specialiserede kurser i database-management