Как обновить одну строку в PHP? - PullRequest
0 голосов
/ 10 октября 2011

У меня есть 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);

    }



?>

http://i.stack.imgur.com/0KGLB.jpg

Ответы [ 4 ]

1 голос
/ 10 октября 2011

Вы передали bookingID php?

<input type="hidden" name="booking" id="booking">

добавьте функцию onclick в оба поля, чтобы сохранить идентификатор выбранной строки для скрытого ввода.

onclick=$(\"#booking\").val('.$bookingID .');
1 голос
/ 10 октября 2011

Привет, я не вижу никаких полей в этой форме. создать скрытое поле с именем "бронирования"

  <input type="text" name="booking" value="<?php echo $bookingID; ?>" >
0 голосов
/ 10 октября 2011

Это, вероятно, вызывает вашу проблему.

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 непосредственно в строки запроса, подобные этим, крайне небезопасно. Я предлагаю проверить переменную перед тем, как поместить ее туда.

В любом случае, ваша проблема в значении переменной $_POST['booking'], вероятно, не было передано в запрос. Он передал строку $_POST['booking'].

0 голосов
/ 10 октября 2011

Если идентификатор бронирования является вашим автоматическим инкрементом / первичным ключом, поэтому он обновляет только одну строку, но если это не так, используйте ваш первичный ключ в условии WHERE, чтобы он мог найти и обновить только 1 строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...