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

Sri*_*ine 5 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);     
}
Run Code Online (Sandbox Code Playgroud)

这就是我目前得到的

{"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"} 
Run Code Online (Sandbox Code Playgroud)

但我希望这个结果集如下.

[
    {"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
    {"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
    {"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]
Run Code Online (Sandbox Code Playgroud)

我这样做是寻求帮助的.提前致谢.

Ber*_*rak 7

把它全部放在一个数组中,然后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 );
Run Code Online (Sandbox Code Playgroud)

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