我的PHP代码从MysqL服务器获取数据以显示哪个适用于网站,但我想使用相同的方法制作移动应用程序,
它是否适用于移动应用程序?因为我在ajax调用下面使用(下面的代码).
我也可以在这里使用json,因为我需要帮助.
<?PHP
include('connect.PHP');
$filmId=$_GET['filmId'];
$sql ="SELECT *, DATE_FORMAT(filmReleaseDate, '%d %b %Y' ) filmReleaseDate FROM films where filmId ='$filmId'";
MysqLi_query("SET NAMES utf8");
$result = MysqLi_query($conn, $sql);
while($row = MysqLi_fetch_array($result))
{
$id=$row['filmId'];
$name=$row['filmName'];
$year=$row['filmYear'];
echo "$name, $year";
}
MysqL_free_result($result);
MysqLi_close($conn);
?>
这是ajax代码,当我点击href它将处理上面的PHP请求以获取数据.
var xmlhttp = new XMLHttpRequest();
var url = "./searchfilmsbyname.PHP";
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
myFunction(xmlhttp.responseText);
}
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
function myFunction(response) {
var arr = JSON.parse(response);
var i;
var out = "";
for (i = 0; i < arr.length; i++) {
out += "<li><a href ='filmdetails.PHP?filmId=" + arr[i].Id + "'>" + arr[i].Film + "</a></li>";
if ((i + 1) == arr.length) {
document.getElementById("searchfilmsbyname").innerHTML = out;
$("#searchfilmsbyname").listview('refresh');
}
}
}
解决方法:
我不确定它是如何在你的网站上工作的,也许你包括它而不是使用ajax,但上面代码的问题是你没有发回有效的json所以:
function myFunction(response) {
var arr = JSON.parse(response);
...
将失败,因为:
$id=$row['filmId'];
$name=$row['filmName'];
$year=$row['filmYear'];
// this does not generate valid json:
echo "$name, $year";
你应该做的是将所有行添加到一个数组中,并且只在结尾处输出只编码为json的数组:
$rows = array();
while($row = MysqLi_fetch_array($result))
{
$rows[] = array('id' => $row['filmId'],
'name' => $row['filmName'],
'year' => $row['filmYear']);
}
echo json_encode($rows);
除此之外你有一个sql注入问题.您应该使用预准备语句,而不是将变量直接注入查询.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。