【发布时间】:2014-12-19 05:54:49
【问题描述】:
我是 PHP 的绝对初学者。我目前正在开发一个具有 PHP 网络服务的 Android 应用程序。我需要获得 2 个执行的 SQL 查询的结果并将其转换为 json。我的问题是我没有将任何结果返回给客户,也没有收到任何错误。我认为这是因为我将结果分成了两个数组。如何将 2 个查询的结果保存为一个数组,然后保存为一个 json 响应?
代码编辑:
<?php
$host = "localhost"; // host of MySQL server
$user = "root"; // MySQL user
$pwd = ""; // MySQL user's password
$db = "food"; // database name
// Create connection
$con = mysqli_connect($host, $user, $pwd, $db);
// Check connection
if(mysqli_connect_errno($con)) {
die("Failed to connect to MySQL: " . mysqli_connect_error());
}
//$uname = $_POST['uname'];
// query the application data
$sql = "SELECT * FROM uploads WHERE status = '0' ORDER By precious_time DESC";
$sql2 = "SELECT * FROM uploads_avatar WHERE uname = 'sinii'";
$result = mysqli_query($con, $sql);
$result2 = mysqli_query($con, $sql2);
// an array to save the application data
$rows = array();
$rows2 = array();
// iterate to query result and add every rows into array
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$rows[] = $row;
}
// iterate to query result and add every rows into array
while($row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC)) {
$rows2[] = $row2;
}
$result_merge = array_merge($rows, $rows2);
// close the database connection
mysqli_close($con);
// echo the application data in json format
echo json_encode($result_merge);
?>
但是我在没有第二个查询的情况下使用第二个数组等运行应用程序,然后它可以工作,但我也需要第二个查询的数据。
感谢您的帮助!
【问题讨论】:
-
你可以使用array_merge合并你的数组。
-
直接对数据库执行查询的结果是什么?他们甚至检索结果集吗?如果没有找到记录,您的数组将保持为空。
-
尝试这样做: $sql $result $rows while()..second query $sql2 $result2 $rows2 while()....根据我的经验,这是最好的。
-
请看我编辑的代码。我现在正在使用 array_merge 但是当我在浏览器上测试它时,我只能从第一个查询中得到结果:-(
标签: php android mysql arrays json