mysqli — кнопка поиска в php сообщение об ошибке нет результата

У меня проблемы с тем, куда мне положить echo 'No Result Found'; в коде кода я попытался соединить его в последнем операторе else в коде для отладки, но это не работает. Пожалуйста, помогите, где я должен положить мой результат не найден. Заранее спасибо.

if(!empty($_POST['search'])){
if($result = $db->query("SELECT * FROM product WHERE setname like '%".$_POST['search']."%' OR category like '%".$_POST['search']."%' ")) {

while($row = $result->fetch_assoc())    {
echo '<div class="col-sm-3">';
echo '<form method="POST" action="buynow.php" enctype="multipart/form-data"> ';
echo '<input type="hidden" name="productid" value="'.$row['id'].'">';
echo '<img class="thumbnail img-responsive" src="data:image;base64,'.$row['image'].'  " >';
echo '<p>Name :  ',$row['setname'], '</span></p>';
echo '<p>Price :  ', $row['price'], '</span></p>';
echo '<p>Bonus :  <span class="label label-info" style="font-size:16px;">', $row['status'], '</span></p>';
echo '<p>Price Now :  ', $row['pricesale'], '</span></p>';
echo '<p>Product Detail: ', $row['productdesc'] ,'</p>';
echo '<button class="btn btn-danger btn-lg btn-block" type="submit" name="submit">Buy Now</button>';
echo '</form>';
echo '<br></div>';
}
echo '</div>';
echo '</div>';

}else{
//code for debugging query
die($db->error);
}
}

-1

Решение

Вам нужно посчитать количество num_rows из вашего запроса. Если не найдено ни одной строки, шоу не найдено

  if (!empty($_POST['search'])) {
if ($result = $db->query("SELECT * FROM product WHERE setname like '%" . $_POST['search'] . "%' OR category like '%" . $_POST['search'] . "%' ")) {
$row = $result->num_rows;
if ($row > 0) {
while ($row = $result->fetch_assoc()) {
echo '<div class="col-sm-3">';
echo '<form method="POST" action="buynow.php" enctype="multipart/form-data"> ';
echo '<input type="hidden" name="productid" value="' . $row['id'] . '">';
echo '<img class="thumbnail img-responsive" src="data:image;base64,' . $row['image'] . '  " >';
echo '<p>Name :  ', $row['setname'], '</span></p>';
echo '<p>Price :  ', $row['price'], '</span></p>';
echo '<p>Bonus :  <span class="label label-info" style="font-size:16px;">', $row['status'], '</span></p>';
echo '<p>Price Now :  ', $row['pricesale'], '</span></p>';
echo '<p>Product Detail: ', $row['productdesc'], '</p>';
echo '<button class="btn btn-danger btn-lg btn-block" type="submit" name="submit">Buy Now</button>';
echo '</form>';
echo '<br></div>';
}
} else {
echo "No result Forund";
}
} else {
//code for debugging query
die($db->error);
}
}
echo '</div>';
echo '</div>';
2

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

Вы можете использовать $result->num_rows или же mysqli_num_rows($result)

if ($result->num_rows == 0) {
echo 'No Result Found';
}
else {
// Do your while
}

И, пожалуйста, используйте готовые заявления

0

  1. Используйте готовые заявления.
  2. Используйте PDO, а не mysqli.
  3. Используйте шаблоны.

Такие вот дела

$sql = "SELECT * FROM product WHERE setname like :search OR category like :search";
$stmt = $pdo->prepare($sql);
$stmt->execute(array('search' => '%'.$_POST['search'].'%'));
$data = $stmt->fetchAll();
?>
<? foreach($data as $row): ?>
<div class="col-sm-3">
<form method="POST" action="buynow.php" enctype="multipart/form-data">
<input type="hidden" name="productid" value="<?=$row['id']?>">
<img class="thumbnail img-responsive" src="data:image;base64,<=$row['image']?>">
<p>Name :  <?=$row['setname']?></span></p>
<p>Price :  <?=$row['price']?></span></p>
<p>Bonus :  <span class="label label-info" style="font-size:16px;">
<?=$row['status']?>
</span></p>
<p>Price Now :  <?=$row['pricesale']?></span></p>
<p>Product Detail: <?=$row['productdesc']?></p>
<button class="btn btn-danger btn-lg btn-block" type="submit" name="submit">Buy Now</button>
</form>
<br>
</div>
<? endforeach ?>
<? if (!$data): ?>
No Result Found
<? endif ?>
0
По вопросам рекламы [email protected]