2017-03-20 54 views
1

這是我的問題。MySQL SELECT命令確實找不到一個條目

function getSent($id) { 
    include 'dbh.php'; 
    $data = array(); 
    $sql = "SELECT * from message WHERE senderid='$id'"; 
    $result = $con->query($sql); 
    $row = $result->fetch_assoc(); 
    while($row = $result->fetch_assoc()) { 
     $data[] = $row; 
    } 
    return $data; 
} 

在理論上該方法是撿的所有消息(在這種情況下),但它總能找到一個消息比分貝=>少如果我把整個表,我會得到與大小的數組爲0.

我該如何解決這個問題?

+2

通過去除扔掉第一結果 –

+2

正如薩米所述while循環前行,刪除:'$行= $ result-> FETCH_ASSOC();' –

+0

** WARNING **:這有一些嚴重[ SQL注入漏洞](http://bobby-tables.com/),因爲在查詢中使用了「$ _GET」數據。儘可能使用**準備好的陳述**。這些在['mysqli'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[PDO](http://php.net/manual/)中很簡單en/pdo.prepared-statements.php)其中任何用戶提供的數據都是用'?'或':name'指示符指定的,後者使用'bind_param'或'execute'填充,具體取決於您使用的是哪一個。 **絕不**將'$ _POST'或'$ _GET'數據直接放入您的查詢中。 – tadman

回答

2

刪除第一個$row = $result->fetch_assoc();。您正在讀取一行,然後循環讀取其餘數據,並且不存儲第一次讀取。 '

+0

該死的,謝謝。 – phil