代码之家  ›  专栏  ›  技术社区  ›  superUntitled

php查询并重复mysql_fetch_数组

  •  1
  • superUntitled  · 技术社区  · 16 年前

    我有一些代码可以工作,但是很笨拙,我想知道是否有更好的方法可以做到这一点,首先是代码,然后我将解释:

    // 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 回复  |  直到 15 年前
        1
  •  3
  •   leepowers    16 年前

    在数组中缓存查询中的所有行。循环访问缓存数组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']

        2
  •  3
  •   ariefbayu    16 年前

    使用 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);
    }
    
        3
  •  1
  •   Jessedc    16 年前

    这里有一个比访问数据库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);
    }