【发布时间】:2014-03-04 22:01:46
【问题描述】:
基本上,我正在尝试显示有关用户拥有的信息,它列出了他们的
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。
复选框正在从数据库中获取值以查看它是否应该已经被选中,我希望能够再次单击它并“取消确认”或者如果它没有勾选则确认它。
【问题讨论】:
-
为什么是 $_POST['Confirmed'] 而不是 $_GET['Confirmed']?
-
将其更改为 $_GET 它并没有真正做任何事情。也将
<td><a href="update.php?BookID=<?php echo $row['BookID']; ?>">Update</a></td>更改为<td><a href="update.php?BookID=<?php echo $row['BookID']; ?>?Confirmed=<?php echo $row['Confirmed']; ?>">Update</a></td> -
还有这条线? if (!isset($_POST['Confirmed']))
-
更改第二个?到 &: 更新