实际上我在我的php文件(使用PHP)中进行了JSON编码并且它正在工作,但是当我在另一个PHP(错误PHP)文件中执行相同步骤时,它不起作用请帮助我
错误PHP
<?php
require_once('dbConnect.php');
$id =$_POST['id'];
$sql= "select title,description,image,price,cid FROM products a where a.cid='$id'";
$res=mysqli_query($con,$sql);
$result = array();
while ($row=mysqli_fetch_array($res)){
array_push($result,array('title'=>$row['0'],
'description'=>$row['1'],
'image'=>$row['2'],
'price'=>$row['3'],
)
);
}
echo json_encode(($result));
mysqli_close($con);
?>
我知道这是一个非常愚蠢的问题但是我不知道为什么Erro.php文件不起作用,而且我在查询中的硬代码 $ id 比Error.php有效 编辑:删除工作php
答案 0 :(得分:1)
然后我们必须假设$_POST['id']
不存在或者不包含有效数据或者查询中包含错误。
您应该对此类代码进行编码,以至少以可用的方式报告此类条件,例如
<?php
require_once('dbConnect.php');
if ( ! isset($_POST['id']) ) {
echo json_encode(array('status'=>false, 'msg'=>'Input missing'));
exit;
}
$_POST['id'];
// amend select to select only what you want
$sql= "select title,description,image,price
FROM products
where cid = '$id'";
$res=mysqli_query($con,$sql);
if ( ! $res ) {
echo json_encode(array( 'status'=>false,
'msg'=>'Query failed',
'sql_msg' => mysqli_error($con)
)
);
exit;
}
$result = array();
// use mysqli_fetch_assoc() and the columns names are used
// so you can simply add the $row to the $result array
while ($row=mysqli_fetch_assoc($res)){
$result[] = $row;
}
echo json_encode(array('status'=>true, 'results'=>$result));
?>
现在对您的javascript做一个小修改,以便它首先检查状态,并在测试时显示任何错误消息。