2013-04-05 62 views
0

我一直在學習PHP/MySQL一段時間,沒有學到那麼多,因爲我專注於iPhone開發以及解決我的全職工作。PHP SQL查詢 - 使用查詢進行篩選,項目的多個值

我正在構建一個使用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 =用戶1至用戶= user2的所有消息,也顯示FROMUSER =用戶2和TOUSER =用戶1。在兩個單獨的JSON列表中,但我想讓他們被拉到一個簡單的JSON列表中,如果可以完成的話,那將是了不起的,我知道它必須放在我的查詢部分中...

我也知道他們是大量的漏洞和問題與我的代碼是不是「乾淨」,但是,這是不需要遵循這些方法,直到我去學習如何遵循SQLi和真正的逃逸字符串/注射... 。

感謝:-)

+3

不,你沒有學習sql,轉義和注入「稍後」。你現在**瞭解**。在你學會爬行之前,你打算參加一級方程式賽車比賽。 – 2013-04-05 21:35:00

+0

我同意。 SQLi/XSS/CRSF漏洞不能掉以輕心。 – cygorx 2013-04-05 21:38:02

回答

0

關於學習SQL注入的意見是正確的,但你將能夠獲得在一個查詢消息:

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

這應該選擇你要找的東西。

0

你提的問題是非常不聚焦的,但我認爲你只需要要麼將兩者連接起來的結果陣列,

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

或更改您的查詢,使其在一次拉兩個數據集。但正如Marc B所說,你真的需要養成避免SQL注入的習慣,這很容易。