从一个数组中的sql获取数据

时间:2013-12-29 07:38:06

标签: php mysql sql arrays

我试图从一个数组中获取数据库中的数据,但我没有成功。我试过的是 -

$q = mysql_query("SELECT*FROM meaning ORDER BY RAND() LIMIT 7");
$gt = mysql_fetch_array($q);
var_dump($gt);

此查询仅提取一行。我想要的是这个查询应该获取随机的7行,并作为数据返回到一个数组 -

array(4) { [0]=> row_0
           [1]=> row_1
           [2]=> row_2
           [3]=> row_3
           [4]=> row_4
           [5]=> row_5
           [6]=> row_6
         } 

4 个答案:

答案 0 :(得分:8)

mysql扩展程序中没有可以执行您想要的功能。所有mysql_fetch_XXX函数一次只读取一行。为了得到一切,你必须使用一个循环:

$gt = array();
while ($row = mysql_fetch_assoc($q)) {
    $gt[] = $row;
}
var_dump($gt);

如果您转换为PDO扩展程序,则其方法PDO::fetchAll可以执行您想要的操作。

答案 1 :(得分:0)

希望这可以帮到你,

 $q = mysql_query("SELECT * FROM meaning ORDER BY RAND() LIMIT 7");
 while($gt = mysql_fetch_assoc($q)){
   $myarray[] =  $gt;
 }   
 var_dump($myarray);

答案 2 :(得分:0)

试试这个:

$q = mysql_query("SELECT * FROM meaning ORDER BY RAND() LIMIT 7");
$i = 0;
$myarray[]='';

while($gt = mysql_fetch_assoc($q))
{
  $myarray[$i] = $gt;
  $i++;
}

var_dump($myarray);

答案 3 :(得分:0)

mysql_fetch_array以关联数组的形式返回MySQL资源中的第一行。获取结果行作为关联数组,数字数组或两者 您需要使用循环来获取所有记录。

$q = mysql_query("SELECT * FROM meaning ORDER BY RAND() LIMIT 7");

while ($row = mysql_fetch_array($q)) {
    echo $row["title"]."<br />";
}