簡體   English   中英

SQL查詢不在PHP中產生輸出

[英]Sql query not producing output in php

我正在創建一個從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

最后用於獲取數據並輸出的代碼可能是原因。 當從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);

也許這會有所幫助。 基本上只是重寫了共享內容的最后幾行。 認為這是自我解釋。 我的煩惱是您應該能夠更好地解決問題。 進行調試。 問一些具體的問題,或者回答您自己的問題。

$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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM