Osiro Posted November 6, 2010 Share Posted November 6, 2010 Hi everyone, new to php, could really use help in working out why the below script doesn't update a sql entry. have list_records.php <?php $host="localhost"; // Host name $username="me_test"; // Mysql username $password="blahblah"; // Mysql password $db_name="me_users"; // Database name $tbl_name="global"; // Table name // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name"; $result=mysql_query($sql); ?> <table width="400" border="0" cellspacing="1" cellpadding="0"> <tr> <td> <table width="400" border="1" cellspacing="0" cellpadding="3"> <tr> <td colspan="4"><strong>List data from mysql </strong> </td> </tr> <tr> <td align="center"><strong>Name</strong></td> <td align="center"><strong>Lastname</strong></td> <td align="center"><strong>Email</strong></td> <td align="center"><strong>Update</strong></td> </tr> <?php while($rows=mysql_fetch_array($result)){ ?> <tr> <td><? echo $rows['firstname']; ?></td> <td><? echo $rows['lastname']; ?></td> <td><? echo $rows['email']; ?></td> // link to update.php and send value of id <td align="center"><a href="update.php?id=<? echo $rows['id']; ?>">update</a></td> </tr> <?php } ?> </table> </td> </tr> </table> <?php mysql_close(); ?> this then connects to update.php <?php $host="localhost"; // Host name $username="me_test"; // Mysql username $password="blahblah"; // Mysql password $db_name="me_users"; // Database name $tbl_name="global"; // Table name // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // get value of id that sent from address bar $id=$_GET['id']; // Retrieve data from database $sql="SELECT * FROM $tbl_name WHERE id='$id'"; $result=mysql_query($sql); $rows=mysql_fetch_array($result); ?> <table width="400" border="0" cellspacing="1" cellpadding="0"> <tr> <form name="form1" method="post" action="update_ac.php"> <td> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr> <td> </td> <td colspan="3"><strong>Update data in mysql</strong> </td> </tr> <tr> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td align="center"> </td> <td align="center"><strong>Name</strong></td> <td align="center"><strong>Lastname</strong></td> <td align="center"><strong>Email</strong></td> </tr> <tr> <td> </td> <td align="center"><input name="name" type="text" id="firstname" value="<? echo $rows['firstname']; ?>"></td> <td align="center"><input name="lastname" type="text" id="lastname" value="<? echo $rows['lastname']; ?>" size="15"></td> <td><input name="email" type="text" id="email" value="<? echo $rows['email']; ?>" size="15"></td> </tr> <tr> <td> </td> <td><input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"></td> <td align="center"><input type="submit" name="Submit" value="Submit"></td> <td> </td> </tr> </table> </td> </form> </tr> </table> <? // close connection mysql_close(); ?> and is finally passed onto update_ac.php <?php $host="localhost"; // Host name $username="me_test"; // Mysql username $password="blahblah"; // Mysql password $db_name="me_users"; // Database name $tbl_name="global"; // Table name // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // update data in mysql database $sql="UPDATE $tbl_name SET firstname='$firstname', lastname='$lastname', email='$email' WHERE id='$id'"; $result=mysql_query($sql); // if successfully updated. if($result){ echo "Successful"; echo "<BR>"; echo "<a href='list_records.php'>View result</a>"; } The script works fine, tells me its all been "successful" but when i goto "view result" it simply hasnt changed a thing. am i missing something obvious? any help would be greatly appreciated. Kind Regards Quote Link to comment https://forums.phpfreaks.com/topic/217945-php-sql-update-help/ Share on other sites More sharing options...
PFMaBiSmAd Posted November 6, 2010 Share Posted November 6, 2010 The file where your UPDATE query is being formed and executed has no code in it to set the $firstname, $lastname, $email, and $id variables, so specifically $id is empty and your WHERE clause on that query is FALSE. The query executes without any error (which is what your if($result){ code is testing for), but because the WHERE clause is FALSE, no rows are affected. Your code needs to reference the actual $_POST variables that the form data is in, test if the form was submitted before doing any processing, and validate and escape the data being put into the query. Quote Link to comment https://forums.phpfreaks.com/topic/217945-php-sql-update-help/#findComment-1131113 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.