我的 PHP代码从mysql服务器获取数据以显示哪个适用于网站,但我想使用相同的方法制作移动应用程序, 它是否适用于移动应用程序?因为我在ajax调用下面使用(下面的代码). 我也可以在这
它是否适用于移动应用程序?因为我在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注入问题.您应该使用预准备语句,而不是将变量直接注入查询.