我正在使用从我的android应用程序发送一个值
httpClient,当我尝试时,我需要根据该值从DB中提取一行
它返回一个空数组(json数组),但如果我使用静态值,比如name,用于
示例:
$result = mysql_query("SELECT * FROM table WHERE column= 'name'");
我成功地获得了数组,这是php文件,请帮助
<?php
$con = mysql_connect("localhost","user","pass");
if (!$con) {
die("Could not connected".mysql_error());
} else {
mysql_select_db("database",$con);
if (!empty($_POST['value'])) {
$value=$_POST['value'];
$result = mysql_query("SELECT * FROM table WHERE column= '$value'");
while ($row = mysql_fetch_assoc($result)) {
$output[]=$row;
}
print(json_encode($output));
mysql_close($con);
}
}
?>
试试这个:
$output = array();
$i=0;
while($row = mysql_fetch_assoc($result))
{
$output[$i]=$row;
$i++;
}
print(json_encode($output));
您必须在while循环之前创建数组,如下所示。
$output = array();
以下是您的正确代码,我假设您在post变量中获得了值。
<?php
$con = mysql_connect("localhost","user","pass");
if(!$con)
{
die("Could not connected".mysql_error());
}
else
{
mysql_select_db("database",$con);
if(!empty($_POST['value']))
{
$value=$_POST['value'];
$result = mysql_query("SELECT * FROM table WHERE column= '$value'");
$output = array();
while($row = mysql_fetch_assoc($result))
{
$output[]=$row;
}
print(json_encode($output));
mysql_close($con);
}
}
?>