我一直在努力解决这个问题几天而且无法取得任何进展...... 我试图从我的数据库中得到一个结果,但相反我得到整个表:(
PHP:
{
$connect = @mysqli_connect ($host, $username, $pass, $dbname)
OR die ('Could not connect to MySQL');
$table = $_REQUEST['table'];
$key = $_REQUEST['id'];
$key_value = $_REQUEST['id_value'];
$q = "SELECT * FROM ".$table." where ".$key."='".$key_value."'";
$r = @mysqli_query ($connect, $q);
while ($row = mysqli_fetch_array($r))
$output[]=$row;
print(json_encode($output));
}
我认为没有必要向你展示我的Android代码,因为数据收到的很好(也更新表工作正常)...我想要的只是从我的数据库中获得一个结果。
当只是在浏览器上导航到这个文件时,显然没有问题... 提前谢谢,欢呼声
答案 0 :(得分:1)
你正在做类似where 1 = 1
的事情,这总是正确的。您没有命名您的专栏。您正在用数字替换它。
试试这个(未经证实):
"SELECT * FROM ".$table." where id='".$id."'";
答案 1 :(得分:0)
如果您想获得结果的第一行,那么您有两个选择:
在您的查询中包含LIMIT
(首选解决方案)
SELECT * FROM“。$ table。”其中“。$ id。”='“。$ id。”'LIMIT 1“
不要循环获取所有数据,只需读取第一行并将其返回。
答案 2 :(得分:0)
您将条件设置为where ".$id."='".$id."'";
,因此,如果您传递id = 1,则表示:WHERE 1=1
,并且始终 true 。这就是它返回所有记录的原因。
答案 3 :(得分:0)
$table = $_REQUEST['table'];
$key = $_REQUEST['id'];
$key_value = $_REQUEST['id_value'];
$q = "SELECT * FROM ".$table." where ".$id."='".$id."'";
您正在分配$ key和$ key_value,但之后使用$ id。