I have a table which displays -Staff ID (Primary Key) -Staff Name -Staff Position
All the data loads in to my grid, the grid has an update button witch should let me to update it but it returns original result after clicking update.
<html> <head> </head> <body> <?php $conn = mysql_connect("localhost", "root", ""); if (!$conn){ die("Can not connect: " . mysql_error()); } mysql_select_db("pizza_shop",$conn); if (isset($_POST['submit']) && $_POST['submit'] == 'update'){ $UpdateQuery = "UPDATE staff SET StaffName='$_POST[staffname]', Position='$_POST[staffposition]' WHERE StaffID='$_POST[hiddenid]'"; mysql_query($UpdateQuery); } $sql = "SELECT * FROM staff"; $myData = mysql_query($sql, $conn); echo "<table border=1> <tr> <th>Staff Name<th> <th>Staff Position<th> </tr>"; while($record = mysql_fetch_array($myData)){ echo "<form action=@edit_staff.php method=post>"; echo "<tr>"; echo "<td>" . "<input type=text name =staffname value=" . $record['StaffName'] ." </td>"; echo "<td>" . "<input type=text name =staffposition value=" . $record['Position'] ." </td>"; echo "<td>" . "<input type=hidden name=hiddenid value=" . $record['StaffID'] . "</td>"; echo "<td>" . "<input type=submit name = update values=Update" . "</td>"; echo "</form>"; } echo "</table>"; $conn = null; ?> </body> </html>
Advertisement
Answer
You need to change your update query from
$UpdateQuery = "UPDATE staff SET StaffName='$_POST[staffname]', Position='$_POST[staffposition]' WHERE StaffID='$_POST[hiddenid]'";
to
$UpdateQuery = "UPDATE staff SET StaffName='".$_POST['staffname']."', Position='".$_POST['staffposition']."' WHERE StaffID='".$_POST['hiddenid']."'";
What you were doing is $_POST[staffname]
which must be like as $_POST['staffname']
and always try to check using error_reporting(E_ALL)
function and need to check that your values are set or not