PHP查询并重复mysql_fetch_array

时间:2009-11-22 07:43:05

标签: php mysql

我有一些有用的代码,但是很笨重,我想知道是否有更好的方法,首先是代码,然后我会解释:

// 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'/>";
    }
}

我想重复一组图像,其文件名存储在mySql表中。上面的代码重复查询10次。我宁愿查询一次,然后重复列表。有没有办法在mySql端或php循环中执行此操作?

感谢。

3 个答案:

答案 0 :(得分:3)

从数组中查询查询中的所有行。循环缓存数组10次并打印。

$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']}'/>";
}

当然,您需要清理$row['fileName']

的输出

答案 1 :(得分:3)

使用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);
}

答案 2 :(得分:1)

这比使用数据库10次更好。

//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);
}