我已经学习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字符串/注射....
谢谢:-)
答案 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注入的习惯,这很容易。