SQL查询不在PHP中产生输出

时间:2019-04-26 14:46:18

标签: php json

我正在创建一个从PHP端接收数据的android项目。但是PHP代码没有结果。

我写了这个php代码,并检查了它是否可以循环到else循环,没有人发现鞋子。但是我的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获得了电话号码,并且该数据库中的数据可以使用该电话号码。但是这段代码没有给出数据。我希望查询的输出在android中为json

2 个答案:

答案 0 :(得分:1)

最后获取数据并输出的代码可能是原因。当您从yourdf=df[df.iloc[:,2:].nunique(1).gt(1)].copy() yourdf Out[565]: cod sto POS BDP TMS 0 30C0 A89R 29 30 30 2 30C0 A89S 10 12 12 4 30C0 A89T 6 9 9 6 30C0 A89V 7 8 8 7 30C0 A89V 6 13 13 10 30C0 A89X 18 15 15 11 30C0 A89Y 25 27 27 13 30C0 A89Z 15 17 17 14 30C0 A89Z 9 10 10 获得结果时,最后一次迭代将返回fetch_assoc(),但是当您将其分配给false时,它将向数据中添加$row[]

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

它还返回JSON中找不到的所有数据,而不仅仅是json_encodes()将其删除。

echo

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

$rows = [];
if ($result->num_rows >0) {
    while($row = $result->fetch_assoc()) {
        $rows[] = $row;
     }
} else {
   $rows = [ 'error' => 'No data found' ];
}

echo json_encode($rows);

答案 1 :(得分:0)

也许这会有所帮助。基本上只是重写了共享内容的最后几行。认为这是自我解释。我的烦恼是您应该能够更好地解决问题。进行调试。问一些特定的问题,或者回答您自己的问题。

$result = $conn->query($sql);
if ($result === false) {
  die('query error');
}

$row = $result->fetch_array(MYSQLI_ASSOC);
if (empty($row)) {
  die('no results');
}

//your code suggests you expect one result. So unless phone number is a unique index in database you should handle that better here.

$jsonOut = json_encode($row);

header('Content-Type: application/json');
echo $jsonOut;