我正在通过PHP查询数据库中名为“users”的表。
$result = mysql_query("SELECT name, lastname FROM $tableName");
if (mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_row($result)) {
echo json_encode( $row );
}
}
else
{
echo json_encode( "No rows found!" );
}
我把这个表放回JSON响应中,如下所示..
["John","Smith"]["John","Wayne"]
但是我想要的格式如下。
{ "users" : [
{
"name":"John",
"lastname":"Smith",
},
{
"name":"John",
"lastname":"Wayne",
}
]}
有没有办法查询数据并将其与表名一起返回,如上面的格式?
答案 0 :(得分:1)
如果你这样做会怎么样?将行放入数组并对其进行编码。
$result = mysql_query("SELECT name, lastname FROM $tableName");
if (mysql_num_rows($result) > 0)
{
$users = array();
while($row = mysql_fetch_row($result)) {
$users['users'][] = $row;
}
echo json_encode( $users );
}
else
{
echo json_encode( "No rows found!" );
}
答案 1 :(得分:1)
使用它代替您当前的代码:
<?php
$userInfo = array("users" => array());
$result = mysql_query("SELECT name, lastname FROM $tableName");
if (mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_row($result)) {
$userInfo["users"][] = array("name" => $row[0], "lastname" => $row[1]);
}
echo json_encode($userInfo);
}
else
{
echo json_encode( "No rows found!" );
}
修改强>
我刚看到你希望这是一个使用表名和列名的动态结果获取,如果你希望这样做,你应该使用mysqli_fetch_assoc()
而不是mysqli_fetch_row()
之类的这样:
<?php
$result = mysqli_query($con, "SELECT name, lastname FROM $tableName");
$tableData = array($tableName => array());
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result)) {
$tableData[$tableName][] = $row;
}
echo json_encode($tableData);
}
else
{
echo json_encode( "No rows found!" );
}