在php中检索数据库记录集到数组中

时间:2011-05-31 08:11:11

标签: php arrays json dataset

我想从MySQL表中检索一组记录作为数组。

到目前为止,我能够将每一行检索为关联数组。但是我想要一个数组中的所有行,因为我必须在jQuery中访问该完整对象才能显示它们。

这是我到目前为止所做的。这是我的.php脚本来检索数据

//select query    
$result = mysql_query("SELECT * FROM student",$con) or die (mysql_error());

$numRows = mysql_num_rows($result); //to iterate the for loop

//passing as an associative array

for ($count = 0; $count < $numRows; $count++){
    $row = mysql_fetch_array($result, MYSQL_ASSOC);
    echo json_encode($row);     
}

这是我目前得到的

{"StuId":"1","fName":"Saman","lName":"Kumara","age":"14","grade":"A"}
{"StuId":"2","fName":"Marry","lName":"Vass","age":"12","grade":"B"}
{"StuId":"3","fName":"Navjoth","lName":"Bogal","age":"32","grade":"A"}
{"StuId":"4","fName":"Jassu","lName":"Singh","age":"22","grade":"E"} 

但是我希望这个结果集如下。

[
    {"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
    {"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
    {"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]

我在这方面寻求帮助。提前谢谢。

1 个答案:

答案 0 :(得分:6)

将所有内容放在一个数组中,然后json_encode:

$json = array( );
$result = mysql_query("SELECT * FROM student",$con) or die (mysql_error());
while( $row = mysql_fetch_assoc( $result ) ) {
    $json[] = $row;
}
echo json_encode( $json );

仅供参考:没有必要计算要循环的结果数。 mysql_fetch_ *将在内部保留一个指向当前记录的指针,并在每次调用时递增该指针。这使它成为在简单的while循环中使用的完美候选者。另外,代替mysql_fetch_array并传递MYSQL_ASSOC,你可以简单地使用mysql_fetch_assoc,这是我更喜欢的方法。使代码更容易阅读(在我看来,无论如何)。