2017-10-12 19 views
0

我構造了一個代碼,其中它將計數記錄where reservation_status ='WAITING'。如果總數等於> = 1,那麼它將顯示記錄並執行保留的聲明。否則它會迴應「無人認領的預訂名單是空的」。如何將sql計數值放在變量上?

這是我的代碼:

<?php 
    $countsql = mysqli_query($conn,"SELECT count(*) FROM reservations WHERE reservation_status = 'WAITING';"); 
    $count = mysqli_num_rows($countsql); 
    if ($count >= 1){   
    $select = mysqli_query($conn,"SELECT * FROM reservations WHERE reservation_status = 'WAITING';"); 
    while($userrow = mysqli_fetch_array($select)){ 
     $reservationid=$userrow['reservation_id']; 
     $startdate=$userrow['reservation_start_date']; 
     $enddate=$userrow['reservation_end_date']; 
     $cname=$userrow['customer_name']; 
     $rroom=$userrow['reserved_room']; 

       echo $rroom;?> 
<a href="claimreservations.php?reservation_id=<?php echo $reservationid; ?>" onclick="return confirm('Are you sure to claim this reservation?');"/>CLAIM RESERVATION</a> 
    <?php}}else if($count = 0){ 
    echo "The Unclaimed Reservations List is Empty".} 
?> 

現在,我不知道爲什麼它同時顯示記錄,此錯誤消息:

注意:類mysqli_result的對象無法轉換在 C至INT:\ XAMPP \ htdocs中\系統\ ADMIN \網頁預訂\ view.php第6行

+0

'$計數= 0'應該是'$計數= = 0'並從這個'echo'中刪除'''未命名的預約列表爲空'。' –

+1

再次查看'mysqli_num_rows'的功能。你不希望結果數量(總是1),但你想要的實際結果... – Pevara

+0

如上所述mysqli_num_rows - 你可以完全刪除第一個SQL。 –

回答

0

無需執行兩個查詢,這樣做在單查詢象下面這樣: -

<?php 
$select = mysqli_query($conn,"SELECT * FROM reservations WHERE reservation_status = 'WAITING'"); 
if (mysqli_num_rows($select) >0){ 
    while($userrow = mysqli_fetch_assoc($select)){ 
     $reservationid = $userrow['reservation_id']; 
     $startdate  = $userrow['reservation_start_date']; 
     $enddate  = $userrow['reservation_end_date']; 
     $cname   = $userrow['customer_name']; 
     $rroom   = $userrow['reserved_room']; 

     echo $rroom; 
?> 
<a href="claimreservations.php?reservation_id=<?php echo $reservationid; ?>" onclick="return confirm('Are you sure to claim this reservation?');"/>CLAIM RESERVATION</a> 
<?php }}else{ 
    echo "The Unclaimed Reservations List is Empty"; 
}?> 
+0

@Isaiah請使用我目前編輯的答案代碼。我完全改變了我的答案代碼。 –

+0

最後。它的工作先生。非常感謝。 :) –

+0

@DoriesIsaiah很高興幫助你:) :) –

0

我認爲它是因爲mysqli_num_rows()將返回的行數,這始終是1

使用

$result = mysqli_fetch_array($countsql, MYSQLI_NUM); 
if ($result[0] >= 1) { // so