2016-10-20 6 views
0

MySQLデータベースのデータをJSON経由でAndroidアプリケーションに渡したいと思っています。PHP - whileループでmysqli_fetch_assocで何も表示しない

$result = mysqli_query($con,"SELECT * FROM job"); 

$row = mysqli_fetch_assoc($result); 

while($row = mysqli_fetch_assoc($result)){ 
    $output[] = $row; 
} 

print(json_encode($output)); 

私は行を追加していけないときことを偶然見出した「$行= mysqli_fetch_assoc($結果);」:これまでのところ、私は私にJSONオブジェクトを与えるために、このPHPスクリプトを書いた

whileループの前には何も返さない。しかし、この例のようにこの行を追加すると、JSONオブジェクトには最初の要素が含まれません。

$行にはすでに最初の行が含まれているため、この行が原因であると考えています。

うまくいけば、あなたは私を助けることができます:)

+0

退役は何行ですか?クエリの後にこれを挿入します: 'echo mysqli_num_rows($ result);'。あなたは** '$ row = mysqli_fetch_assoc($ result);'行を削除する**を持っています。 –

+0

はできません。 PHPはフェッチ呼び出しをどこで/どのように行うか気にしません。それが中に入っていようと、それの直前であろうと、あなたはまだdbから行を取得しています。 'while'が始まる前に' $ output [] = $ row; 'を持っていなければ、最初の行を投げ捨てているだけです。 –

+0

_ whileループの前に行を追加しないと、何も返されません_不可能..... – AbraCadaver

答えて

1

目的で使用すると、このような何かしなければならないクエリと間違っかを把握するために:結果セットからすべての行を横断する目的で

if ($result = mysqli_query($db, $sql)) { 
    // Here you can see and check count of rows in your result set. 
    $numRows = mysqli_num_rows($result); 
    // ... 
} else { 
    // Here you can see and check and understand error. 
    var_export(mysqli_error($db)); 
} 

while ($row = mysqli_fetch_assoc($result)) { 
    var_export($row); 
} 

となります。ループの前には$row = mysqli_fetch_assoc($result)を使用してはなりません。

関連する問題