【发布时间】:2015-06-22 20:30:46
【问题描述】:
我的 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');
}
}
}
【问题讨论】:
-
作为一个公平的警告,您的查询可能是 SQL 注入的,因为您直接在查询中使用来自用户输入的变量。我强烈建议阅读prepared statements。
-
我不知道我是否可以推荐我写的一个工具包,但是看看Aye Aye Api。它仍处于测试阶段,缺乏适当的文档(有一个快速入门指南)甚至是 website,但它的设计目的是使构建 API 尽可能简单。将它与 Doctrine 混合使用,您将拥有非常强大的 API MySQL 访问权限。
标签: php jquery mysql ajax json