PHP SQL QUERY - 使用Query过滤,项目有多个值

时间:2013-04-05 21:33:41

标签: php mysql json

我已经学习PHP / MySQL一段时间了,没学到那么多,因为我专注于iPhone开发以及解决我的全职工作。

我正在构建一个消息客户端,使用JSON来提取新消息和聊天窗口....我正在使用的部分是从我的数据库获取信息。我喜欢这个请求,以便将所有消息发送给人们(IE:FromUser和ToUser),然后以JSON显示它们,但是由于某种原因我无法正确显示它。

这是我的例子

<?php 
 $enduser = $_GET['usernameto'];
$enduser1 = $_GET['usernamefrom'];
$db = mydatabase;
$con = mysql_connect("localhost","admin","password");
if (!$con)
  {
   die('Could not connect: ' . mysql_error());
  }
mysql_select_db($db, $con);
   $arr = array();
       //Execute the query
      $rs = mysql_query("SELECT * FROM messages WHERE touser = '$enduser' AND fromuser = '$enduser1'");
        $rs1 = mysql_query("SELECT * FROM messages WHERE touser = '$enduser1' AND fromuser = '$enduser'");

        // Add the rows to the array 
       while($obj = mysql_fetch_object($rs)) {
        $arr = $obj;
        } 

    // Add the rows to the array 
   while($obj1 = mysql_fetch_object($rs1)) {
   $arr1 = $obj1;
   }

  echo '{"users":'.json_encode($arr).' '.json_encode($arr1).'}';
// echo ''.json_encode($arr).'';
mysql_close($con);
?>

现在这确实显示了所有消息,例如FromUser = user1 ToUser = user2,并且还显示Fromuser = user2和toUser = User1。在两个单独的JSON列表中,但我希望将它们放在一个简单的JSON列表中,如果可以完成,那将是惊人的,我知道它必须放在我的查询部分...

我也知道他们的代码中存在大量的漏洞和问题并不是“干净”但是暂时不需要遵循这些方法,直到我去学习如何遵循SQLi和Real Escape字符串/注射....

谢谢:-)

2 个答案:

答案 0 :(得分:0)

关于学习SQL注入的注释是正确的,但您可以在一个查询中获取消息:

SELECT * FROM messages WHERE (touser = '$enduser' AND fromuser = '$enduser1') OR (touser = '$enduser1' AND fromuser = '$enduser')

这应该选择你要找的东西。

答案 1 :(得分:0)

您的问题非常不集中,但我认为您只需要将两个结果数组连接起来

$combined = array_merge($arr, $arr1);

或者更改您的查询,以便一次性提取两组数据。但正如Marc B所说,你真的需要养成避免SQL注入的习惯,这很容易。