使用PHP从数据库中检索数据

时间:2013-04-10 11:19:21

标签: php mysql

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

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

DATABASE有一个名为:

的表

人口 - 字段是:id,性别,城市,州

结果总是:

{ “成功”:1, “数据”:[{ “ID”:空, “性别”:空, “城市”:空, “状态”:空}]}

我不确定代码中有什么问题:

 <?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 个答案:

答案 0 :(得分: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"];
    }

答案 1 :(得分: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);

答案 2 :(得分:0)

当放在单引号之间时,不会评估PHP中的变量。

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

尝试连接:

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

PS:除了这个错误,我必须告诉你最好不再使用mysql_ *函数,使用mysqli或pdo!