为了账号安全,请及时绑定邮箱和手机立即绑定

SQL查询不在PHP中产生输出

SQL查询不在PHP中产生输出

PHP
慕娘9325324 2021-05-19 13:05:09
我正在创建一个从PHP端接收数据的android项目。但是PHP代码没有任何结果。我写了这个php代码,并检查了它是否可以循环到其他地方,没有人发现鞋子。但是我的SQL查询会手动在XAMPP SQL中提供输出。if($_SERVER['REQUEST_METHOD']=='POST'){    include_once "Dbconnect.php";     $phone= $_POST['phn'];    $sql="Select             peoples.name as pname,            peoples.address as addr,            peoples.phone as phone,            peoples.nomineephone as nphone,            peoples.idproofnumber as idproof,            camp.campid as cid,            camp.Managername as mgrname,            camp.managerno as mgrphone,            camp.name as cname,            camp.Location as loc         from             peoples         inner join camp             on peoples.campid=camp.campid         where             peoples.phone='$phone'";    $result = $conn->query($sql);    if ($result->num_rows >0) {        while($row[] = $result->fetch_assoc()) {            $tem = $row;            $json = json_encode($tem);         }    } else {       echo 'No people data found';    }    echo $json;}我试图在PHP端回显电话号码,我从android获得了电话号码,并且该数据在DB中可用。但是这段代码没有给出数据。我希望查询的输出为android中的json
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

最终获取数据并输出的代码可能是原因。当您从获得结果时fetch_assoc(),将返回最后一次迭代false,但是当您为其分配结果时$row[],它将添加false到数据中。


在这段代码中,循环仅建立了一个行列表,然后将json_encodes()它们显示在输出中。它还会先创建一个空数组,以确保将其初始化。


它还会返回JSON中找不到的所有数据,而不仅仅是将其echo读出。


$rows = [];

if ($result->num_rows >0) {

    while($row = $result->fetch_assoc()) {

        $rows[] = $row;

     }

} else {

   $rows = [ 'error' => 'No data found' ];

}


echo json_encode($rows);

如果您只希望返回1行,则可以使用


if ($result->num_rows >0) {

    $row = $result->fetch_assoc();

} else {

   $row = [ 'error' => 'No data found' ];

}


echo json_encode($row);


查看完整回答
反对 回复 2021-05-21
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信