我有一些有用的代码,但是很笨重,我想知道是否有更好的方法,首先是代码,然后我会解释:
// 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循环中执行此操作?
感谢。
答案 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)
$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);
}