JSON:查询联接表不工作(Cordova Mobile)
JSON: query join table not working (Cordova Mobile)
我有两个查询,其结果将在JSON中使用。第一个查询是
$query = "SELECT *
FROM info_lokasi
WHERE id_lokasi=".$id."";
和第二个查询
$query = "SELECT t1.id_lokasi,t1.jalan,t1.lat,t1.lng,t1.nama,t2.kapasitas,t2.kegiatan,t2.parkir,t2.pengurus
FROM info_lokasi t1
INNER JOIN detail t2 ON t1.id_lokasi=t2.id_lokasi
WHERE t1.id_lokasi
AND t2.id_lokasi=".$id."";
当我使用第一个查询时,得到的结果是
[
{
"id_lokasi": "3",
"nama": "masjid",
"jalan": "surabaya",
"lat": "-7.292958471571183",
"lng": "112.71161556243896",
"username": "ope",
"jenis": "masijd"
}
]
但是,当我使用第二个查询时,我没有得到结果。为什么?
这是我的代码:
PHP
<?php
include "db.php";
header("Content-type: text/javascript");
if (isset($_POST['detail'])) {
$id = $_POST['id'];
$query = "SELECT t1.id_lokasi,t1.jalan,t1.lat,t1.lng,t1.nama,t2.kapasitas,t2.kegiatan,t2.parkir,t2.pengurus FROM info_lokasi t1 INNER JOIN detail t2 ON t1.id_lokasi=t2.id_lokasi WHERE t1.id_lokasi AND t2.id_lokasi=".$id."";
//$query = "SELECT * FROM info_lokasi WHERE id_lokasi=".$id."";
$data = $con->query($query);
$results = array();
while ($r = mysqli_fetch_array($data,MYSQL_ASSOC)) {
# code...
$results[] = $r;
}
echo json_encode($results);
}
mysqli_close($con);
?>
Javascript
function detail(idlokasi){
var id = idlokasi;
var datastring = "id="+id+"&detail=";
$.ajax({
type: "POST",
url: "http://localhost:8080/maps-api/detail.php",
data: datastring,
crossDomain: true,
cache: false,
datatype: "JSON",
success: function(data){
alert("DATA: "+data);
}
});
}
感谢
没有得到任何输出的原因可能是:
- 查询确实不返回任何数据(即:没有与
WHERE
条件匹配的行) - 您的SQL出现错误
正如您所期望的那样,它会返回数据,我假设这是情况2。
您的查询是:
SELECT t1.id_lokasi,t1.jalan,t1.lat,t1.lng,t1.nama,t2.kapasitas,t2.kegiatan,t2.parkir,t2.pengurus
FROM info_lokasi t1
INNER JOIN detail t2 ON t1.id_lokasi=t2.id_lokasi
WHERE t1.id_lokasi
AND t2.id_lokasi=$id
要检测错误,您应该使用以下PHP代码:
$query = "SELECT t1.id_lokasi,t1.jalan,t1.lat,t1.lng,t1.nama,t2.kapasitas,t2.kegiatan,t2.parkir,t2.pengurus
FROM info_lokasi t1
INNER JOIN detail t2 ON t1.id_lokasi=t2.id_lokasi
WHERE t1.id_lokasi
AND t2.id_lokasi=$id";
$data = $con->query($query);
if ($con->error)
{
echo "ERROR: {$con->error}";
throw new Exception($con->error);
}
注意:不要使用$_POST['id']
作为参数,因为它可能会导致SQL injection
问题。您应该更好地使用查询参数。
相关文章:
- Cordova ng路线工作不正常
- JSON:查询联接表不工作(Cordova Mobile)
- Javascript无法与Onsen一起在Cordova工作
- cordova背景地理定位无法在背景上工作
- 带有cordova的ios上的Jquery.text()无法正常工作
- 为什么我的代码可以在chrome上工作,而不是一次使用cordova编译
- Cordova iframe在iOS Safari中工作,但在Android中不起作用
- 带有Firebase的Cordova将无法正常工作
- Cordova / Phonegap iOS Safari和语音合成将无法正常工作
- Cordova/PhoneGap: setInterval() / setTimeout() 无法正常工作
- Phonegap/Cordova 2.9自定义插件创建.任何工作示例
- Cordova Android禁用后退按钮[不工作]
- cordova.js无法在远程页面上工作
- Cordova罗盘API(navigator.compass.watchHeading)不工作(错误代码3)
- Cordova+AngularJs路由不工作
- webkit playsinline在返回到cordova iOS应用程序中的页面时停止工作
- cordova插件文件在浏览器中无法正常工作
- Phonegap插件不工作(cordova-plugin-purchase)
- 通知.警告不工作cordova版本4+
- 导航器.在线不工作cordova 5.0.0