2016-11-22 12 views
-2

これは、4つのランダムな画像を表示し、データベースから表示することです。ランダム性が働いているように見えますが、私は4つの異なる結果を表示する方法を理解していません。結果は1回だけ4回表示されます。フィードバックがあれば、ありがとうございます。MySQlのランダムデータをPHPで表示する方法

<div class="similar-entrees-section food-tabs"> 
<h3>Similar entrees</h3> 
<?php if ($food['catId']=1):?> 
<?php $random=$db->fetchRow("select * from foods where catId=1 ORDER BY RAND() LIMIT 4"); ?> 
<div class="row"> 

      <div class="col-xs-6 col-sm-3"> 
      <a href="#" class="food-block"> 
       <div class="food-img"><img src="img/menu-items/<?php echo $random['image'] ; ?>" class="img-responsive" alt=""></div> 
       <h5>Cheddar Omelet 
       +&nbsp;Chicken Sausage <span class="chilly"></span> </h5> 
       </a> 
       </div> 

      <div class="col-xs-6 col-sm-3"> 
      <a href="#" class="food-block"> 
       <div class="food-img"><img src="img/menu-items/<?php echo $random['image'] ; ?>" class="img-responsive" alt=""></div> 
       <h5>Gluten Free Breaded 
       Chicken <span class="chilly"></span></h5> 
       </a> 
       </div> 

      <div class="col-xs-6 col-sm-3"> 
      <a href="#" class="food-block"> 
       <div class="food-img"><img src="img/menu-items/<?php echo $random['image'] ; ?>" class="img-responsive" alt=""></div> 
       <h5>Mesquite Grilled 
       Chicken Breast</h5> 
       </a> 
      </div> 

      <div class="col-xs-6 col-sm-3"> 
      <a href="#" class="food-block"> 
       <div class="food-img"><img src="img/menu-items/<?php echo $random['image'] ; ?>" class="img-responsive" alt=""></div> 
       <h5>Mesquite Grilled 
       Chicken Breast <span class="chilly"></span></h5> 
       </a> 
      </div> 


      </div> 
<?php endif; ?> 
+0

今のところ、同じ画像を4回出力するだけです。 FORループを作成して結果を反復する必要があります –

+2

if($ food ['catId'] = 1) 'は常にtrueになります。==を使用する必要があります。 – mic

答えて

-1

fetchRowはすべてではなく、すべての行を取得する必要がありますか?

次に、<?php echo $random['image'] ; ?>を使用すると、同じ行が繰り返し表示されます。

getAll()(PEARを使用している場合)を使用して、すべての結果を取得してループオーバーすることができます。

おそらくのようなこの

<div class="similar-entrees-section food-tabs"> 
    <h3>Similar entrees</h3> 
    <?php if ($food['catId'] = 1): ?> 
    <?php $random = $db->getAll("select * from foods where catId = 1 ORDER BY RAND() LIMIT 4"); ?> 
    <div class="row"> 
     <?php foreach ($random as $r) { ?> 
      <div class="col-xs-6 col-sm-3"> 
       <a href="#" class="food-block"> 
        <div class="food-img"> 
         <img src="img/menu-items/<?php echo $r['image']; ?>" class="img-responsive" alt=""></div> 
        <h5>Cheddar Omelet +&nbsp;Chicken Sausage <span class="chilly"></span></h5> 
       </a> 
      </div> 
     <?php } ?> 
    </div> 
<?php endif; ?> 
+0

なぜダウン投票? –

0

あなたが各画像FORE、その後

<?php 
    $res = $db->query("select * from foods where catId=1 ORDER BY RAND() LIMIT 4"); 
    $images = $db->getAll($res); 
?> 

<?php $random=$db->fetchRow("select * from foods where catId=1 ORDER BY RAND() LIMIT 4"); ?> 

を交換する必要がまず第一に、代わりの

<?php echo $random['image'] ; ?> 

あなたは...など、

を秒

<?php echo $images[0]['image'] ; ?> 
最初の画像のための

<?php echo $images[1]['image'] ; ?> 

を使用する必要があり、私はまた、あなたが各画像のHTMLコードを有するのでinstrad推薦最終的にすべての画像のhtmlを生成するループを持っています。結果をどのようにループするかについて、次のリンクを見てください。

https://pear.php.net/manual/en/package.database.mdb.intro-fetch.php

+0

私はこの致命的なエラーでこのエラーが発生しています:定義されていないメソッドのデータベースを呼び出す:: getAll() – David

+0

あなたは正しい構文についてPHPのマニュアルをチェックしてくださいできますか?私はあなたが使用しているドライバ/バージョンはありませんが、このようなものがあるはずです。あなたがそれを見つけたら、私の答えを更新するように私に知らせてください:) – jsalatas

関連する問題