2017-10-23 7 views
0

データベースのすべての行の最初のイメージだけを取得できます。準備済みの文と爆発関数を使用してすべてのイメージを取得できますか。explode関数を使用して、フォルダからすべてのイメージの配列を取得するにはどうすればよいですか?

<form method="POST" enctype="multipart/form-data"> 
    <?php 
    $sql="select property_img from img_tbl"; 

     $q=$conn->query($sql); 
      if($q->num_rows>0) 
      { 
      while($r1=$q->fetch_assoc()) 
      { 
       $property_img1=$r1['property_img']; 
      $property_img2=explode(' ',$property_img1); 


      echo ' 

     <div id="shade"> 
     <div class="col-sm-12 " id="color"> 
     <div class="col-sm-4 form-group">  

     <div class="row fppadd"> '; 

     ?> 

      <?php 
      foreach($property_img2 as $data){ 

      echo '<img class="img-zoom" src="uploads/' . $data . '" width="200" height="150" alt="not fetched">&nbsp;&nbsp;'; 
      } 

      ?> 
      <br></a></span><br> 
     </div> 
     </div> 



     </div> 

     </div> <?php 
      } 
      }?>  
      <br> 






     </form> 

uploads folder structure of images

Images are saved in database in this format.I want to fetch these images

+0

シンプルです。この形式でイメージを保存しないでください。または、RDBMSを気にしないでください。 – Strawberry

+0

配列を最初に初期化すると、上書きされる可能性があります。 $ property_img1 = array(); $ property_img1 = $ r1 ['property_img']; $ property_img2 = explode( ''、$ property_img1); – Rits

+0

複数イメージを格納する理想的な方法は、 'id'、' property_id'、 'image_name'の各フィールドを持つ' property_images'という名前の別のテーブルを作成することです。そして、このテーブルからイメージ名を取り出します。 –

答えて

0

配列インデックスを繰り返すことによって爆発した後、配列をループしてみてください。

for($i=0; $i<count($property_img2); $i++){ 
    echo '<img class="img-zoom" src="uploads/' . $property_img2[$i] . '" width="200" height="150" alt="not fetched">&nbsp;&nbsp;'; 
} 

しかし、私はあなたのデザインがあることをコメントに同意します貧しい人々、そしてそれを1対多の関係に変更することを検討するかもしれません。

+0

私は同じ出力を得ています。また、すべてのproperty_idの最初のイメージだけを与えています。フォルダとDbスナップショットを与えました。確認してください。 – sudha

+0

間違ったデータが挿入されている可能性があります。試してみてください "print_r($ property_img2);"あなたが本当にデータベースに保存したものを見ることができます。 – Lamar

+0

Array([0] => a.jpg [1] => avatar.png [2] => b.jpg)。私はこの出力を "print_r($ property_img2);" – sudha

関連する問題