Добрый день!
У меня возникают проблемы с отображением сообщения «Не найдено записей» в моем процессе 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 с помощью 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>";
}
Вы должны попробовать этот код, если какая-либо ошибка, какой-либо код в вашем коде, то вы можете найти это.
$result = mysqli_query($con, $query) or die(mysqli_error($con));
OR
if(!$result){
echo die(mysqli_error($result));
}
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>";
}