Sınırlama while döngüsü

5 Cevap php

Mysql veri alınırken döngüleri sırasında sınırlayıcı bir yolu var mı?

$query = "SELECT * 
    FROM  `table` 
    WHERE user_id = '$id' 
    ORDER BY `ID` DESC";

$result = mysql_query($query);

while ($info = mysql_fetch_assoc($result)) {
    //stuff
}

İşte ben mysql'in SINIRI işlevini kullanmak istemiyorum, ben sınırlamak ederken bir başka döngü?

Teşekkürler

5 Cevap

Her zaman break döngü bu hedefine ulaşır yapabilirsiniz. Nick önerilen aksi bir for döngü kullanabilirsiniz.

$count = 0;

while ($count < 4 && $info = mysql_fetch_assoc($result)) {
    //stuff

    $count++;
}

Ancak LIMIT komutu ile sorgudan sonuç kümesini sınırlamak için iyi bir fikir olabilir unutmayın.

Bir for döngüsünü kullanın. Örneğin, up to beş satır döngü ...

for ($i = 0; $info = mysql_fetch_assoc($result) && $i < 5; ++$i) {
    // do stuff
}

Sadece satır sayısı için bir çek ekleyin:

while ($rowcount < 100 && $info = mysql_fetch_assoc($result)) {
    $rowcount += 1;
//stuff
}

Sen her zaman erken PHP döngü üzerinden atlayabilir - ama bunun için mysql LIMIT ifadesini kullanıyor olmalıdır - potansiyel bellek ve performans sorunları yaratarak () mysql_query çağırdığınızda tüm sonuç kümesi veritabanından getirilen ve istemci transfer olduğunu.

Sen break bir döngü sona erdirmek için kullanabilirsiniz.

Yani, olabilir

$result = mysql_query($query);
$count=0;

while ($info = mysql_fetch_assoc($result)) {

if($info=="what you're looking for"){ $count+=1; }

if($count >= 4){ break; }//break will exit the while loop
}

break php docs