PHP ve MySQL Döngü yardım?

3 Cevap php

Diyelim ki veritabanına 12 bağlantıları girilen bir kullanıcı var ama onlar görüntülenen zaman ben 3 gruba bağlantıları break up ve 12 Kinks örneğin görüntülenen kadar üç gruplarını tekrarlamak istiyorum diyelim.

<div>
	<p><a href="">Link 1</a></p>
	<p><a href="">Link 2</a></p>
	<p><a href="">Link 3</a></p>
</div>

İşte ben çalışıyorum kod parçasıdır. Benim kod ne gibi görünmelidir?

while ($row = mysqli_fetch_assoc($dbc)) {
		if (!empty($row['category']) && !empty($row['url'])) {
				echo '<div>';
				echo '<p><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
				echo '</div>';
	}

}

3 Cevap

Böyle bir şey size div başına üç bağlantıları alır. Biz 3 bir bağlantı çok yok olduğunu durum için sonunda ilave koşullu yankı eklemek

$ctr = 0;
while ($row = mysqli_fetch_assoc($dbc)) {
    if (!empty($row['category']) && !empty($row['url'])) {
        if ($ctr%3 == 0) {
            echo '<div>';
        }
        $ctr ++;
        echo '<p><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p?';
        if ($ctr%3 == 0) { 
            echo '</div>';
        }
    }

}
if ($ctr%3 != 0) { 
  echo '</div>';
}

Eğer Sana üç ulaşmak her zaman sıfırlamak / artan kaçınmak istiyorsanız, sadece modül operatörünü kullanabilirsiniz:

http://php.net/manual/en/language.operators.arithmetic.php

Gibi bir şey:

if( $i%3 == 0 ){
  // divisible by 3...
}

Daha kolay bir yöntem gibi daha fazla olacaktır:

while(true) {
    $c = 0;
    echo "<div>";
    while ($row = mysqli_fetch_assoc($dbc) && $c++ < 3) {
    	if (!empty($row['category']) && !empty($row['url'])) {
    		echo '<p><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
    	}
    }
    echo "</div>";
    if(empty($row))
    	break;
}