1

テーブルからすべての画像を取得するmysqliクエリがあります(表示する画像は5つあります)。それらを表示するためにjqueryスライダーを使用しています。問題は、ユーザーが 2 つの画像だけをアップロードした場合のように、空白のページが表示される 5 つの画像がない場合、残りの 3 つのサムネイルは空になり、それらをクリックすると空の領域が表示されることです。空のサムネイルを表示する代わりに、画像が存在する場合にのみサムネイルを表示するにはどうすればよいですか?

以下を試しましたが、うまくいきません。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">&nbsp;</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>
4

3 に答える 3

1

私たちはあなたのデータベース設計を見ることができないので、あなたのデフォルト値を見てください

image_one等々

行数は常に0または1(理由によりLimit 1)フィールドが
重要です。 これらのフィールドは、空であるか、ファイル名が入力されているかに関係なく、常に存在します。 image_oneimage_five

デフォルト値に応じてテストします

たとえば、

  • if ($row['image_one'] > '') {
  • if ($row['image_one'] > null {

if周囲の建物のhtmlを置きます。

<?php if($result->num_rows > 0){?>
 <?php if ($row['image_one'] > '') 
   {?>
     <li class="menuItem">
     <a href=""><img src="<?php echo $path.$row['image_one']?>" /></a>
     </li>
   <?php 
   }?>
    .... next 4 other tests
 <?php if ($row['image_two'] > '') 
    ....

<?php } // END__$result->num_rows > 0 ?>
于 2013-10-12T02:05:42.107 に答える
-1

pdoについては100%確信が持てませんが、それほど遠くありません

<?php
 $sql = "SELECT * FROM table where title = $title AND id = $id limit 1 ";
 $result = mysql_query($sql);
 while ($row = mysql_fetch_array($result)) {
?>

<div class="slide">
   <a class="fancybox" href="images/<?php echo $row['DB-IMAGE-PATH-HERE']; ?>" data-fancybox-group="gallery">
      <img class="cloudzoom appsld" src="images/<?php echo $row['DB-IMAGE-PATH-HERE']; ?>"/>
   </a>
</div>

<?php } // end while loop ?>
</div> <!-- end id="slides" -->
于 2013-10-12T00:12:11.823 に答える