2016-04-06 20 views
0

Birkaç farklı görüntü için URL'leri içeren bir dizim var.X öğeleri görüntülendikten sonra yeni tablo satırı ekleme

Amacım, dizideki ilk yedi görüntüyü çıkarmak, yeni bir satır oluşturmak, sonraki 7 görüntüyü çıkarmak, yeni bir satır oluşturmak ve dizinin içinde daha fazla URL kalmayıncaya kadar bunu yapmaya devam etmektir.

anda

<?php 
      $command = 'select * from products;';//The command to be executed 
      $result = mysqli_query($con, $command); //The result of the command 
      if (mysqli_num_rows($result) > 0) 
       { 
        // output data of each row 
        echo "<table align='center'>"; 
        $images = array(); 
        $name = array(); 
        while($row = mysqli_fetch_assoc($result)) //Store all product images and their names in two SEPERATE arrays 
         { 
          $images[] = $row['Image']; 
          $names[] = $row['Name']; 
         } 
        for($x = 0; $x < 1; $x++) 
         { 
         echo "<tr>"; 
         foreach($images as $image) 
          { 
           echo "<td> <img src='" . $image . "' height='80' width='100'/></td>"; 
          } 
         echo "</tr>"; 
        } 
       } 
     ?> 

Güncel Kod, bu kod yatay $images[] dizinin içindeki tüm resimleri verir ama ilk yedi görüntüleri gösterilir sonra yeni bir satır oluşturmak DEĞİLDİR.

Görüntüleri tablonun içine yerleştiriyorum, böylece çıktı eşit aralıklı olacak.

İstenilen çıktıyı almak için biri bana doğru yönde işaret edebilir mi? Etrafa baktım ve birkaç çözüm denedim ama ileriye doğru ilerlemiyorum.

+0

Yeni bir kod oluşturmak için kodunuzu kırabilir miyim? –

+0

@FrayneKonok Elbette. – Matt

+0

cevabı kontrol edin. –

cevap

1

Kullanım kod satırı: burada tablonun herhangi bir avantaj görmüyorum neden

Ben masanın olmadan yaptı. Eğer işleri net yapmak istiyorsanız, CSS'u kullanın.

<?php 
$command = "SELECT * FROM `products`"; 
$result = mysqli_query($con, $command); 
if(mysqli_num_rows($result) > 0){ 
    $i = 1; 
    while($row = mysqli_fetch_object($result)){ 
    if($i++ > 6) echo "<br/>";?> 
    <img src="<?php echo $row->Image;?>" height='80' width='100'/> 
    <?php } 
} 
?> 
0

Sen satıra istediğiniz öğelerin sayısını depolamak ve çizgi kapatmadan önce bu numarayı ulaşmasını kontrol etmek için bir değişken kullanabilirsiniz: Eğer var kaç görüntüleri alınıyor

$nbImagesPerRow = 7; 

:

tablo sona erdiğinde
$nbImages = mysqli_num_rows($result); 

Instanciate iki değişken, mevcut satır kontrol eder, bir ve diğer kontrol etmek için:

Eğer yeni bir satır açmak ya da kapamak gerekir Hava size döngü, denetlemek Sonra
$currentRowImageIndex = 1; 
$totalImageIndex = 1; 

:

daha
while($row = mysqli_fetch_assoc($result)) { 
    if (1 === $currentRowImageIndex) { 
     echo '<tr>'; 
    } 
    ... 

    if (
     $currentRowImageIndex >= $nbImagesPerRow 
     || $totalImageIndex >= $nbImages) { 
     $currentRowImageIndex = 1; 
     // you also should deal with the last line colspan when $totalImageIndex >= $nbImages) 
     echo '<tr>'; 
    } else { 
     $currentRowImageIndex++; 
    } 
$totalImageIndex++; 

böyle özyüklenirler ya vakıf olarak bir html ızgara sistemini kullanmakta tereddüt etmeyin (birçok öğeleri) öğeleri yatay olarak div'lara hizalamanıza ve kullanıcı ekranına uyum sağlamanıza olanak tanır.

İlgili konular