我正在尝试使用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代码吗?我过去三天一直在努力解决这个问题吗?
谢谢!
答案 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!