我有2个按钮,批准并拒绝更新预订状态。 我试图将值传递给approve_booking.php时迷路了。 根据bookingID不知道如何更新单行。需要编码帮助!!!
的index.php
<head>
<script src="jquery-latest.js" type="text/javascript"></script>
<script src="jquery.tablesorter.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$("#myTable").tablesorter({widgets: ['zebra']});
});
$(document).ready(function()
{
$("#myTable").tablesorter();
}
);
$(document).ready(function()
{
$("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} );
}
);
</script>
<link href="style.css" rel="stylesheet" type="text/css">
<link href="stylelogin.css" rel="stylesheet" type="text/css">
</head>
<body>
<form name="form1" method="post" action="approve_booking.php" >
<?php
$db = new mysqli("localhost", "root", "", "eventdb");
$query = "SELECT customer.companyName, customer.contactName,eventinfo.eventTitle,boothAlias,date, testbook.bstatus, testbook.username, bookingID from eventinfo, testbook, customer where testbook.username=customer.username AND testbook.eventID=eventinfo.eventID";
$result = $db->query($query, MYSQLI_STORE_RESULT);
$o = '<table id="myTable" class="tablesorter" width="660px"><thead><tr><th>Company Name</th><th>Contact Name</th><th>Event</th><th>Booth</th><th>Date</th><th>Status</th></tr></thead><tbody>';
while(list($companyName, $contactName, $eventTitle, $boothAlias, $date, $bstatus,$bookingID) = $result->fetch_row()) {
if($bstatus==0){
$status="Pending";
}else if($bstatus==1){
$status="Successful";
}else{
$status="Reject";
}
$o .= '<tr><td width="120px">'.$companyName.'</td><td width="120px">'.$contactName.'</td><td width="180px">'.$eventTitle.'</td><td width="70px">'.$boothAlias.'</td><td width="170px">'.$date.'</td><td width="70">'.$status.'</td><td width="100"><input width="100px" name="APPROVED" type="submit" id="APPROVED" value="Approve"> <input width="100px" name="REJECT" type="submit" id="REJECT" value="Reject"></td></tr>';
}
$o .= '</tbody></table>';
echo $o;
?>
</form>
</body>
approve_booking.php
<?php
mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("eventdb") or die (mysql_error());
if(isset($_POST['APPROVED']))
{
$query2 = "UPDATE testbook SET bstatus ='0' WHERE bookingID='$_POST[booking]'";
$result2 = @mysql_query($query2);
}
if (isset($_POST['REJECT']))
{
$query3 = "UPDATE testbook SET bstatus ='2' WHERE bookingID='$_POST[booking]'";
$result3 = @mysql_query($query3);
}
?>
答案 0 :(得分:1)
嗨,我没有在该表单中看到任何表单字段。 创建一个名为“booking”的隐藏字段
<input type="text" name="booking" value="<?php echo $bookingID; ?>" >
答案 1 :(得分:1)
您是否已将bookingID传递给php?
<input type="hidden" name="booking" id="booking">
将onclick
函数添加到两个子句中,以将所选行的bookingid保存到隐藏的输入中。
onclick=$(\"#booking\").val('.$bookingID .');
答案 2 :(得分:0)
如果预订ID是你的auto_increment / primary key,那么它只更新单行,但如果不是,则在WHERE条件下使用你的主键,这样它只能找到并更新1行。
答案 3 :(得分:0)
这可能会导致您的问题。
snip
$query3 = "UPDATE testbook SET bstatus ='2' WHERE bookingID='$_POST[booking]'";
/snip
将其更改为:
snip
$query3 = "UPDATE testbook SET bstatus ='2' WHERE bookingID='{$_POST['booking']}'";
snip
请注意,将变量直接回显到像这样的查询字符串中是非常不安全的。我建议在将变量放入之前先检查变量。
无论如何,你的问题是变量$_POST['booking']
的值可能没有传递给查询。它传递了字符串$_POST['booking']
。