2016-04-12 13 views
-2

と予想しています。地区名を選択する際に表示される人の詳細なPHPコードです。警告:mysqli_num_rows()はパラメータ1がmysqli_result、booleanは

<?php 
define('HOST','localhost'); 
define('USER','root'); 
define('PASS',''); 
define('DB','farmer'); 
$conn = mysqli_connect(HOST,USER,PASS,DB); 

if(!$conn) { 
     //required post params is missing 
     $response["error"] = TRUE; 
     $response["error_msg"] = "Connection could not be established!"; 
     echo json_encode($response); 
    } 
    $sql = "select code,name,mobile from reg_farmer where dist_name=$_POST[dt_name]"; 
    $res = mysqli_query($conn,$sql); 
$num_rows = mysqli_num_rows($res); 
///echo "$num_rows Rows\n"; 
    if ($num_rows == 0){ 
         $response["error"] = TRUE; 
         $response["error_msg"] = "No Data Exist"; 
         echo json_encode($response); 
         exit(0); 
       } 

$result = array(); 
while($row = mysqli_fetch_array($res)){ 
    $result = array("error" => FALSE); 
$b[]=array('code'=>$row[0],'name'=>$row[1],'mobile'=>$row[2]); 
$result["District"] = $b; 
} 
echo json_encode($result); 
mysqli_close($conn); 
?> 

しかし、それは{ "エラー" "いいえデータが存在":真、 "ERROR_MSGを"}示しマイテーブル構造が enter image description here

+1

'dist_name = $ _ POST [dt_name]'引用符で囲む必要がありますしてみてください!あなたのクエリは失敗し、そのエラーが発生しました! – Saty

+0

'mysqli_query()'は、[the docs](http://php.net/manual/en/mysqli.query.php)で指定されているように失敗した場合にFALSEを返します。 PHPはmysqli_num_rows()でブール値を使用しようとしているため、 'No data exists'が表示されています。何が起こっているのかを知るには 'mysqli_query()'を調べる必要があります。 – Henders

+2

[mysql \ _fetch \ _array()/ mysql \ _fetch \ _assoc()/ mysql \ _fetch \ _row()の可能な複製は、パラメータ1がリソースまたはmysqli \ _result、boolean givenであることを期待している](http://stackoverflow.com/question/2973202/mysql-fetch-array-mysql-fetch-assoc-mysql-fetch-row-expects-parameter-1-to) –

答えて

-1

POST dt_nameの下に表示

...変数に格納し、それをmysqlクエリで使用します:$ dt_name = $ _POST ['dt_name'];

この

<?php 
define('HOST','localhost'); 
define('USER','root'); 
define('PASS',''); 
define('DB','test'); 
$conn = mysqli_connect(HOST,USER,PASS,DB); 

if(!$conn) 
{ 
    //required post params is missing 
    $response["error"] = TRUE; 
    $response["error_msg"] = "Connection could not be established!"; 
    echo json_encode($response); 
} 

$dt_name = $_POST['dt_name']; 
$sql = "select code,name,mobile from reg_farmer where dist_name='$dt_name'"; 
$res = mysqli_query($conn,$sql); 

$num_rows = mysqli_num_rows($res); 
//echo "$num_rows Rows\n"; 
if ($num_rows == 0){ 
    $response["error"] = TRUE; 
    $response["error_msg"] = "No Data Exist"; 
    echo json_encode($response); 
    exit(0); 
} 

$result = array(); 
while($row = mysqli_fetch_array($res)){ 
    $result = array("error" => FALSE); 
    $b[]=array('code'=>$row[0],'name'=>$row[1],'mobile'=>$row[2]); 
    $result["District"] = $b; 
} 
echo json_encode($result); 
mysqli_close($conn); 
?> 
+2

なぜOPがこれを試すのですか?この回答への説明は、私たちのために、そしてOPのためにも良いでしょう。 –

+0

OPは '$ _POST'からSQL文に直接データを挿入する必要がありますか?私が代わりにSQLインジェクション – andrewsi

+0

@andrewsiにオープン彼のデータベースを残してのご質問やセキュリティの脅威の詳細な説明を答えることによって説明できる、あなたが問題を発見した疑いがあるが、その代わりに準備されたステートメントでこれを行う方法をユーザーにご提示ください彼女のコーディングでは、他の人たちのために、さらには改善することができます。 –

関連する問題