Android Mysql - 结果太多了

时间:2012-01-24 15:23:51

标签: php mysql

我一直在努力解决这个问题几天而且无法取得任何进展...... 我试图从我的数据库中得到一个结果,但相反我得到整个表:(

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代码,因为数据收到的很好(也更新表工作正常)...我想要的只是从我的数据库中获得一个结果。

当只是在浏览器上导航到这个文件时,显然没有问题... 提前谢谢,欢呼声

4 个答案:

答案 0 :(得分:1)

你正在做类似where 1 = 1的事情,这总是正确的。您没有命名您的专栏。您正在用数字替换它。

试试这个(未经证实):

"SELECT * FROM ".$table." where id='".$id."'";

答案 1 :(得分:0)

如果您想获得结果的第一行,那么您有两个选择:

  1. 在您的查询中包含LIMIT(首选解决方案)

    SELECT * FROM“。$ table。”其中“。$ id。”='“。$ id。”'LIMIT 1“

  2. 不要循环获取所有数据,只需读取第一行并将其返回。

答案 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。