我想通过json将带有PHPH文件的数据库记录发送到我正在用IntelXDK制作的应用程序。因为我无法在英特尔XDK上使用PHP代码,所以我需要使用JSON。我想展示两个记录'引用'和作者'来自我的报价'我的屏幕上的表格。有人帮我这个代码,但它只返回[null,null]而不是我需要的两个记录..我尝试调试但我是PHP的新手,所以我可以让它工作..任何可以帮助的人或者看到此代码中的错误?谢谢!
PS:是的我现在已经有其他人就此问题提出了多个问题。我已经阅读了所有内容,但没有一个能解决我的问题。
<?php
if(isset($_GET["get_rows"]))
{
//checks the format client wants
if($_GET["get_rows"] == "json")
{
$link = mysqli_connect("localhost", "xxxxx", "xxxxx", "xxxx");
/* check connection */
if (mysqli_connect_errno()) {
echo mysqli_connect_error();
header("HTTP/1.0 500 Internal Server Error");
exit();
}
$query = "SELECT quote, author FROM quotes WHERE id = " . date('d');
$jsonData = array();
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
$row = $result->fetch_assoc($result);
// Create a new array and assign the column values to it
// You can either turn an associative array or basic array
$ret= array();
$ret[] = $row['quote'];
$ret[] = $row['author'];
//encode to JSON format
echo json_encode($ret);
}
else {
echo json_encode($ret);
}
/* close connection */
mysqli_close($link);
}
else
{
header("HTTP/1.0 404 Not Found");
}
}
else
{
header("HTTP/1.0 404 Not Found");
}
?>
答案 0 :(得分:0)
fetch_assoc()
函数调用中存在错误 - 删除$result
参数。如果启用了错误报告,您应该看到:
警告:mysqli_result :: fetch_assoc()需要0个参数,给定1个
只需将其更改为:
$row = $result->fetch_assoc();
在javascript中解析此响应,只需执行以下操作:
var obj = JSON.parse(xmlhttp.responseText);
document.getElementById("quote").innerHTML = obj[0];
document.getElementById("author").innerHTML = obj[1];
答案 1 :(得分:0)
更改此
$row = $result->fetch_assoc($result);
到
$row = $result->fetch_assoc();
只需将其更改为:
$row = $result->fetch_assoc();
<强>更新强>
response = JSON.parse(xmlhttp.responseText);
您现在可以单独访问它们:
reponse.quote
和response.author
答案 2 :(得分:0)
我认为你的问题在于fetch_assoc() 尝试使用它:
$row = mysqli_fetch_assoc($result);
而不是
$row = $result->fetch_assoc($result);
它适用于我的例子