我构造了一个代码,其中它将计算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".}
?>
现在,我不知道为什么它会同时显示记录和此错误消息:
Notice: Object of class mysqli_result could not be converted to int in C:\xampp\htdocs\system\admin pages\Reservations\view.php on line 6
最佳答案
无需执行两个查询,只需在单个查询中执行即可,如下所示:-
<?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";
}?>
关于php - 如何将 sql 计数值放在变量上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46703390/