根据id和复选框更新记录

时间:2014-03-04 22:01:46

标签: php mysql get

基本上,我试图显示有关用户列出的内容的信息

BookID date time confirmed

确认是0或1,0未确认1已确认,因为这是一个表,这需要使用$ _GET我假设或它不会更新正确的。

目前,我已将此列出事项

<?php
while($row = mysqli_fetch_array($result))
  { ?>
  <tr>
  <td><?php echo $row['BookID']?></td>
  <td>  <?php echo $row['date']?>  </td>
  <td>  <?php echo $row['time']?>  </td>
  <td> <input type="checkbox" name="Confirmed" value="1" <?php echo ($row['Confirmed'] == 1) ? 'checked="checked"' : ''; ?>/> </td>
  <td><a href="delete.php?BookID=<?php echo $row['BookID']; ?>">Delete</a></td>
  <td><a href="update.php?BookID=<?php echo $row['BookID']; ?>">Update</a></td>
  </tr>
  </table> 

update.php包含此

<?php
// Your database info
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'smithrwg_database';

$Confirmed = $_POST['Confirmed'];

if (!isset($_POST['Confirmed']))
{
    echo 'No ID was given...';
    exit;
}

$con = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($con->connect_error)
{
    die('Connect Error (' . $con->connect_errno . ') ' . $con->connect_error);
}
$sql = mysql_query("UPDATE tbl_booking SET Confirmed = '$Confirmed' WHERE BookID = ?");

//$sql = "UPDATE tbl_booking SET Confirmed='$Confirmed' WHERE BookID == ?";
if (!$result = $con->prepare($sql))
{
    die('Query failed: (' . $con->errno . ') ' . $con->error);
}

if (!$result->bind_param('i', $_GET['BookID']))
{
    die('Binding parameters failed: (' . $result->errno . ') ' . $result->error);
}

if (!$result->execute())
{
    die('Execute failed: (' . $result->errno . ') ' . $result->error);
}

if ($result->affected_rows > 0)
{
    echo "The ID was updated with success.";
}
else
{
    echo "Couldn't update the ID.";
}
$result->close();
$con->close();

主要关注$ sql,因为它实际上并没有从get函数中获取id。

复选框从数据库中获取值以查看是否应该检查它,我希望能够再次单击它并“取消确认”或确认它是否没有勾选。

1 个答案:

答案 0 :(得分:0)

您在表单标记中使用了什么方法属性?如果你使用GET,那么使用GET来获取它。如果您使用POST,则使用POST。顺便说一句,首先尝试回显所有已发布的变量,以便您知道正在传递正确的变量。它总是一个很好的调试方法。希望这可以帮助。谢谢。