У меня есть запрос mysqli, который извлекает все изображения из таблицы (у меня есть 5 изображений, которые я показываю). Я использую ползунок jquery для их отображения. Проблема в том, что если нет 5 изображений, я вижу пустую страницу, например, если пользователь загружает только два изображения, остальные три миниатюры будут пустыми, и когда вы нажмете на них, появится пустая область. Я не хочу, чтобы это произошло, так как я могу показать только миниатюру, если изображение существует, вместо того, чтобы показывать пустую миниатюру?проверить, существует ли определенная строка mysql
Я пробовал ниже, но это не работает. Мне просто нужно посмотреть, существует ли файл image_one, покажите миниатюру и то же самое для остальных изображений.
<?php
$stmt = $mydb->prepare("SELECT * FROM table where title = ? AND id = ? limit 1 ");
$stmt->bind_param('ss', $title, $id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$path = 'images/';
?>
<div id="slides">
<?php if($result->num_rows > 0){?><div class="slide"><a class="fancybox" href="<?php echo $path.$row['image_one']?>" data-fancybox-group="gallery"><img class="cloudzoom appsld" src="<?php echo $path.$row['image_one']?>"/></a></div><?php };?>
<?php if($result->num_rows > 0){?><div class="slide"><a class="fancybox" href="<?php echo $path.$row['image_two']?>" data-fancybox-group="gallery"><img class="cloudzoom appsld" src="<?php echo $path.$row['image_two']?>"/></a></div><?php };?>
<?php if($result->num_rows > 0){?> <div class="slide"><a class="fancybox" href="<?php echo $path.$row['image_three']?>" data-fancybox-group="gallery"><img class="cloudzoom appsld" src="<?php echo $path.$row['image_three']?>"/></a></div><?php };?>
<?php if($result->num_rows > 0){?><div class="slide"><a class="fancybox" href="<?php echo $path.$row['image_four']?>" data-fancybox-group="gallery"><img class="cloudzoom appsld" src="<?php echo $path.$row['image_four']?>"/></a></div><?php };?>
<?php if($result->num_rows > 0){?><div class="slide"><a class="fancybox" href="<?php echo $path.$row['image_five']?>" data-fancybox-group="gallery"><img class="cloudzoom appsld" src="<?php echo $path.$row['image_five']?>"/></a></div><?php };?>
</div>
<div id="slide_menu">
<ul id="slide"> <!-- This is the thumbnail area -->
<li class="fbar"> </li>
<?php if($result->num_rows > 0){?><li class="menuItem"><a href=""><img src="<?php echo $path.$row['image_one']?>" /></a></li><?php }; ?>
<?php if($result->num_rows > 0){?><li class="menuItem"><a href=""><img src="<?php echo $path.$row['image_two']?>" /></a></li><?php }; ?>
<?php if($result->num_rows > 0){?><li class="menuItem"><a href=""><img src="<?php echo $path.$row['image_three']?>" /></a></li><?php }; ?>
<?php if($result->num_rows > 0){?><li class="menuItem"><a href=""><img src="<?php echo $path.$row['image_four']?>" /></a></li><?php }; ?>
<?php if($result->num_rows > 0){?><li class="menuItem"><a href=""><img src="<?php echo $path.$row['image_five']?>" /></a></li><?php }; ?>
</ul>
</div>
Посмотрите в использовании петли, так что это не будет иметь значения, как много или как мало у вас есть он будет отображать только то, что в базе данных. –
как я это делаю? Понятия не имею. – Lmxc
Вы нарушили правило [Zero, One или Infinity Rule] (http://en.wikipedia.org/wiki/Zero_one_infinity_rule), имея столбцы с именем «один», «два» и так далее. В [правильно нормированной базе данных] не существует «двух» (http://en.wikipedia.org/wiki/Database_normalization). Они называют это отношением «один ко многим», а не «один-к-пять». – tadman