如何将sql计数值放在变量上?

时间:2017-10-12 07:03:19

标签: php mysql

我构建了一个代码,其中它将计算记录,其中reservation_status =' WAITING'。如果等待的总数>≥1,则它将显示记录并执行保留声明。否则它将回显"无人认领的预订清单是空的"。

这是我的代码:

  <?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的对象无法转换为int in   第6行的C:\ xampp \ htdocs \ system \ admin pages \ Reservations \ view.php

2 个答案:

答案 0 :(得分: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";
}?>

答案 1 :(得分:0)

我认为它是因为mysqli_num_rows()将返回行数,总是1

使用

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