Ваш запрос не делает то, что вы хотите.
SELECT * FROM sysPickupRequest WHERE pickup_status = 1;
Это возвращает подробности в потенциально большом количестве строк и, возможно, без строк.То, что он не возвращает, является подсчетом всего.Вы хотите что-то вроде этого вместо этого.Он возвращает одну строку и один столбец, необходимое вам количество.
SELECT COUNT(*) status1 FROM sysPickupRequest WHERE pickup_status = 1;
Или, если вам нужно общее количество строк и число со статусом 1, вы можете сделать это:
SELECT SUM(pickup_status = 1) AS status1, COUNT(*) AS total FROM sysPickupRequest;
Это работает, потому что выражение pickup_status = 1
имеет значение 1, когда оно истинно, и значение 0, когда оно ложно.Вы SUM()
получаете кучу единиц и нулей.
Так что в вашем случае это работает так.(Я не отлаживал этот код.)
$query = "SELECT SUM(pickup_status = 1) AS status1, COUNT(*) AS total FROM sysPickupRequest;"
$status1 = 0;
if ($resultSet=mysqli->query($query)) {
if ($row=$resultSet->fetch_assoc($resultSet)) {
$status1 = $row['status1'];
} else die 'fetch error';
} else die 'query error';
$pickupStatus = $status1 != 0 ? $status1 : 'No New Pickups';
echo $pickupStatus;