0

PhP を使用して mysql からデータを取得しようとしています。PHPファイルをテストしているだけです。これが機能する場合は、それらの結果を Android アプリに取得する作業を開始します。

表示される PHP の結果は常に null です。データベースでデータが利用可能であることを確認できます。

DATABASE には次のテーブルがあります。

人口 - フィールドは次のとおりです: id、性別、都市、州

結果は常に次のとおりです。

{"success":1,"data":[{"id":null,"gender":null,"city":null,"state":null}]}

コードの何が問題なのかわかりません:

 <?php
  include("db_config.php");

  $response = array();

  $gender = 'Male';

  // get a product from products table
  $result = mysql_query("SELECT * FROM population WHERE gender = '$gender'");

  if (!empty($result)) 
   {
    // check for empty result
    if (mysql_num_rows($result) > 0) 
     {

        $result = mysql_fetch_array($result);

        $data = array();

        $data ["id"] = $row["id"];
        $data ["gender"] = $row["gender"];
        $data ["city"] = $row["city"];
        $data ["state"] = $row["state"];

        // success
        $response["success"] = 1;

        $response["data"] = array();
        array_push($response["data"], $data);
        echo json_encode($response);
       }
    else 
     {
        $response["success"] = 0;
        $response["message"] = "No data found";

        echo json_encode($response);
     }
    }
  else 
   {

    $response["success"] = 0;
    $response["message"] = "No data found";
    echo json_encode($response);
     } 
  ?>

誰かがこのphpコードで私を助けることができますか? 過去 3 日間、これに取り組んできましたが、解決策が得られませんでしたか?

ありがとう!

4

3 に答える 3

2

今試してみて、

if (mysql_num_rows($result) > 0) 
     {

        $row = mysql_fetch_array($result);  // wrong initialize to the result value

        $data = array();

        $data ["id"] = $row["id"];
        $data ["gender"] = $row["gender"];
        $data ["city"] = $row["city"];
        $data ["state"] = $row["state"];
    }
于 2013-04-10T11:23:09.103 に答える
1

これを変える

$result = mysql_fetch_array($result);

$row = mysql_fetch_array($result);

以下のコードを使用してすべてのデータを取得します

while($row = mysql_fetch_array($result)) {
    $data = array();
    $data ["id"] = $row["id"];
    $data ["gender"] = $row["gender"];
    $data ["city"] = $row["city"];
    $data ["state"] = $row["state"];
    // success
    $response["success"] = 1;
    $response["data"][] = array();
    array_push($response["data"][], $data);
}
echo json_encode($response);
于 2013-04-10T11:25:14.313 に答える
0

PHP の変数は、単一引用符で囲まれていると評価されません。

"SELECT * FROM population WHERE gender = '$gender'"

連結を試してください:

$query = "SELECT * FROM population WHERE gender = '" . $gender "'";
mysql_query($query);

PS: このエラーの他に、mysql_* 関数をもう使用しないこと、mysqli または pdo を使用することをお勧めします。

于 2013-04-10T11:23:29.480 に答える