2017-11-08 22 views

答えて

-1

になりたいように、このしてください...

result.php

$prep =$mysqli->prepare("select name,location from token where sen_uid=?"); 
$prep->bind_param("s",$id); 
$prep->execute(); 
$result= $prep->get_result(); 
$rows= array(); 
while($r= $result->fetch_array(MYSQL_ASSOC)) 
{ 
    $rows[] = $r; 
} 
$obj= json_encode($rows); 

を解決するために私を助けてメソッドを使用してオブジェクト(値)を配列にプッシュします。

$prep =$mysqli->prepare("select name,location from token where sen_uid=?"); 
$prep->bind_param("s",$id); 
$prep->execute(); 
$result= $prep->get_result(); 
$rows= array(); 
while($r= $result->fetch_array(MYSQL_ASSOC)) 
{ 
    array_push($rows,$r); 
} 
$obj= json_encode($rows); 
+0

これは何も解決しません。 'array_push'は' $ row [] = $ var'と同じように動作するので、実際に何も変更していません。 – IsThisJavascript

+0

あなたは何を言おうとしていますか?変数$ rowsは[]を返します。 downvoteの理由を教えてください。 – Vigneshwaran

+0

私はすでに私のdownvoteの理由を述べました。 '$ row [] = $ var' ==' array_push($ row、$ var); ' – IsThisJavascript

0

まあ、のは、について話しましょう....
while($r= $result->fetch_array(MYSQL_ASSOC))
あなたがここでやっている、その後設定、連想配列として$rを設定している$rows内部の完全な配列;したがって、$resultが何かを返した場合、それは$rowsの内部で乗算されます。
あなたの後ろにいるのはこれのようなものでしょうか?

$prep =$mysqli->prepare("select name,location from token where sen_uid=?");  
//should the bind_param function be i instead of s? i means integer and s means string 
//$prep->bind_param("i",$id); 
$prep->bind_param("s",$id); 
$prep->execute(); 
$result= $prep->get_result(); 
$rows= array(); 
//for an array like [0][0], [0][1] use 
//$rows= $result->fetch_array(MYSQLI_NUM); 
//for an arary like [0]['name'], [0]['location'] use: 
$rows= $result->fetch_array(MYSQLI_ASSOC); 
$obj= json_encode($rows); 

クエリの実行が正しいように見えます。おそらく準備が失敗していないことを確認するために何らかのエラーチェックを追加することになります。 MySQLでこのクエリを実行しようとしましたが、結果が得られるかどうかを確認しましたか?

編集;実際には、$rが1度しか設定されないので、whileは完全に無意味です。私は、この問題は主に壊れた準備クエリの中にあると思う。デバッグ目的のために

if($prep =$mysqli->prepare("select name,location from token where sen_uid=?")){  
    //should the bind_param function be i instead of s? i means integer and s means string 
    //$prep->bind_param("i",$id); 
    $prep->bind_param("s",$id); 
    if(!$prep->execute()){ 
     print_r("Execute error: ".$mysqli->error); 
    } 
    $result= $prep->get_result(); 
    $rows= array(); 
    //for an array like [0][0], [0][1] use 
    //$rows= $result->fetch_array(MYSQLI_NUM); 
    //for an arary like [0]['name'], [0]['location'] use: 
    $rows= $result->fetch_array(MYSQLI_ASSOC); 
    $obj= json_encode($rows); 
}else{ 
    print_r("Prepare error: ".$mysqli->error);  
}    

、上記のスニペットのよう

+0

出力をテキストファイルに書き込もうとしましたが、これはnullを返します。 –

+0

@NeethuMエラーチェックでコードを実行しようとしましたか? phpmyadmin/mysql cliで実行しようとしているクエリを実行して、結果が得られているかどうかを確認してください。 – IsThisJavascript

+0

うんんのクエリは完全に動作していますが、 'json_encode'が' null'を返すようにしてください –

0

エラーチェックを追加し、私は、DB内のクエリに関連するすべてのデータがあると思いませんか?はい、その後

変更しようとした 場合は、この

$分取> bind_param( "S"、$のID);

$分取> bind_param( "I"、$のID);

+1

これは機能しています。私はIDを 'varchar'としました。私は' '' 'を使うのではなく、むしろ好きですか? –

+0

問題がある場合は、サーバーのログを確認できます – Vigneshwaran

1

私はthis.Nowのように私のコードを編集しました。

result.php

$prep =$mysqli->prepare("select name,location from token where sen_uid=?"); 

$prep->bind_param("s",$id); 
$prep->execute(); 
$result= $prep->get_result(); 
$payload= array(); 
while($r= $result->fetch_array(MYSQL_ASSOC)) 
{ 
    $payload[]=array('name' =>$r['name'], 
         'lc' =>$r['location'], 

     ); 
} 
$obj= json_encode($payload); 
関連する問題