0

我正在尝试使用 PhP 从 mysql 检索数据。我只是在测试我的 PHP 文件。如果这可行,那么我将开始努力将这些结果发送到我的 Android 应用程序。

显示的 PHP 结果始终为空。我可以确认数据库中有可用的数据。

DATABASE 有一个名为:

人口 - 字段包括:id、性别、城市、州

结果总是:

{"成功":1,"数据":[{"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 代码吗?我在过去三天一直在研究这个问题没有得到任何解决方案?

谢谢!

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 回答