PHP sorgu ve tekrar mysql_fetch_array

3 Cevap php

Ben çalışır, ancak aksak ve bunu yapmak için daha iyi bir yolu, ilk kodu ve sonra ben açıklayacağım olup olmadığını merak ediyorum bazı kod var:

// repeat query 10 times
for ($i = 1; $i <= 10; $i++) {
   $query = @mysql_query("SELECT fileName FROM images");
    while($row = mysql_fetch_assoc($query)){
    	extract($row);
    	echo "<img src='images/images/$fileName'/>";
    }
}

Ben dosya adları mySql tabloda saklanan görüntülerin bir dizi tekrarlamak istiyorum. Yukarıdaki kod sorgu 10 kez tekrarlar. Ben oldukça listesini tekrar, sonra bir kez sorgulamak istiyorum. Bunu yapmak için bir yol mySql tarafında veya php döngü ya, var mı?

Teşekkürler.

3 Cevap

Dizideki sorgudan tüm satırları önbelleğe. Önbellek dizi 10 kez ve baskı döngü.

$a= array();
$query= mysql_query("SELECT fileName FROM images");
while($row = mysql_fetch_assoc($query))
 $a[]= $row;

for ($i = 1; $i <= 10; $i++) {
 foreach ($a as $row)
   echo "<img src='images/images/{$row['fileName']}'/>";
}

Tabii ki $row['fileName'] çıkışını sterilize gerekir

Kullan mysql_data_seek()

$rs = mysql_query("SELECT * FROM item_user");
for($i = 1; $i <= 10; $i++)
{
    echo "$i\n";
    while(false !== ($r = mysql_fetch_array($rs)))
    {
    	echo "  $r[0]\n";
    }
    mysql_data_seek($rs, 0);
}

İşte Veritabanının 10 kez isabet daha çok güzel bir yoldur.

//declare an array
$imageArray = array();

// repeat query 10 times
for ($i = 1; $i <= 10; $i++) {
   $query = @mysql_query("SELECT fileName FROM images");
    while($row = mysql_fetch_assoc($query)){
        extract($row);
        $imageArray[] = $fileName; //sequentially add each row to the array
    }
}
//loop over the array
//At this stage you can use the array for whatever you like. Iterating over an array is easy.

foreach ($imageArray as $image){
   echo sprintf('<img src="images/images/%s" />',$image);
}