mysql — отображение & quot; результатов не найдено & quot; в переполнении стека

Добрый день!
У меня возникают проблемы с отображением сообщения «Не найдено записей» в моем процессе PHP.
Вот код для моего поискового запроса:

if(isset($_GET['submit'])) {

$product = $_GET['product'];
$city = $_GET['city'];

$query = "SELECT * FROM $product WHERE city = '$city'";
$result = mysqli_query($con, $query) or die ("Could not connect to database.");
$product = str_replace('_', ' ', $product);
$product = strtoupper($product);
echo "You have searched for " . $product . " in " . $city;
echo "<table border=1>";
echo "<tr> <th>Store</th> <th>City</th> </tr>";
while ($row = mysqli_fetch_array($result)) {
echo "<tr><td>";
echo $row['store'];
echo "</td><td>";
echo $row['city'];
echo "</td></tr>";
}
echo "</table>";
}

Моя проблема в том, что я не знаю, где и что поместить условное утверждение, которое будет отображать «Записи не найдены».
Надеюсь, что кто-то сможет помочь мне в этом.
Заранее спасибо.

0

Решение

проверить, равно ли число строк в результате 0 с помощью mysqli_num_rows Функция и отобразить сообщение перед циклом по набору результатов.

ваш код может быть как

if(isset($_GET['submit'])) {

$product = $_GET['product'];
$city = $_GET['city'];

$query = "SELECT * FROM $product WHERE city = '$city'";
$result = mysqli_query($con, $query) or die ("Could not connect to database.");
$product = str_replace('_', ' ', $product);
$product = strtoupper($product);
echo "You have searched for " . $product . " in " . $city;
echo "<table border=1>";
// check if results are present
if(mysqli_num_rows($result)>0) {
echo "<tr> <th>Store</th> <th>City</th> </tr>";
while ($row = mysqli_fetch_array($result)) {
echo "<tr><td>";
echo $row['store'];
echo "</td><td>";
echo $row['city'];
echo "</td></tr>";
}
} else {
echo "<tr> <td colspan='2'> No Results found </td></tr>";
}
echo "</table>";
}
2

Другие решения

Вы должны попробовать этот код, если какая-либо ошибка, какой-либо код в вашем коде, то вы можете найти это.

$result = mysqli_query($con, $query) or die(mysqli_error($con));

OR
if(!$result){
echo die(mysqli_error($result));
}
0

mysqli_affected_rows() Функция возвращает количество затронутых строк в предыдущем запросе SELECT, INSERT, UPDATE, REPLACE или DELETE.

Также из справочника:http://php.net/manual/tr/mysqli.affected-rows.php

Целое число больше нуля указывает количество затронутых или найденных строк. Ноль указывает, что ни одна запись не была обновлена ​​для оператора UPDATE, ни одна строка не соответствует предложению WHERE в запросе или что еще не выполнен какой-либо запрос. -1 указывает, что запрос вернул ошибку.

    $product = $_GET['product'];
$city = $_GET['city'];

$query = "SELECT * FROM $product WHERE city = '$city'";
$result = mysqli_query($con, $query) or die ("Could not connect to database.");
$product = str_replace('_', ' ', $product);
$product = strtoupper($product);
echo "You have searched for " . $product . " in " . $city;

if(mysqli_affected_rows($con) ==0){ echo  "No records found"; }

else{
echo "<table border=1>";
echo "<tr> <th>Store</th> <th>City</th> </tr>";
while ($row = mysqli_fetch_array($result)) {
echo "<tr><td>";
echo $row['store'];
echo "</td><td>";
echo $row['city'];
echo "</td></tr>";
}
echo "</table>";
}
0
По вопросам рекламы [email protected]