2017-03-23 109 views
0

我是MySQLi和PHP的新手,我試圖通過匹配postid從我的數據庫中選擇註釋。它應該選擇具有該id的所有行,並顯示每個行的名稱和值。但不工作。PHP MySQLi:選擇多行並顯示每個選擇的列值

 // Create connection 
    $conn = mysqli_connect($hostname, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
     echo "<script>alert('dead!')</script>"; 
    } 

    $get_comments = "SELECT * FROM 'articlecomments' WHERE 'commentpost' = 'post1' LIMIT 0 , 30"; 
    $check_comments = mysqli_query($conn, $get_comments); 

    while ($row = mysqli_fetch_assoc($check_comments)) { 
     echo "<script>alert('we have comments!');</script> 

     <div class='comment-single'> 
     <div class='row'> 
      <div class='col-md-3'> 
      " . $check_comments['commentname'] . " 
      </div> 
      <div class='col-md-9'> 
      " . $check_comments['commentvalue'] . " 
     </div> 
     </div> 
     </div> 
    "; 

} 

Screenshot of database with the same query database structure

連接建立正常,因爲我可以訪問在同一個腳本DB的其他部分。我懷疑我的查詢有問題。

感謝

+0

之前刪除單引號'commentpost –

+0

@ WebCode.ie ops thanks,fixed i噸。但看起來不是問題 –

+0

**警告**:使用'mysqli'時,您應該使用[參數化查詢](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php )和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**將'$ _POST','$ _GET'或**任何**用戶數據直接放入查詢中,如果有人試圖利用您的錯誤,這可能會非常有害。 – tadman

回答

0

轉義列不是單引號使用滴答:

SELECT * 
FROM `articlecomments` 
WHERE `commentpost` = 'post1' 
LIMIT 30 
+0

更改爲蜱蟲修復解決了我的問題 - 棘手的一個謝謝。 –

0

必須使用$row['commentname']$row['commentvalue']從數據庫中獲取數據。

echo "<script>alert('we have comments!');</script> 

    <div class='comment-single'> 
    <div class='row'> 
     <div class='col-md-3'> 
     " . $row['commentname'] . " 
     </div> 
     <div class='col-md-9'> 
     " . $row['commentvalue'] . " 
    </div> 
    </div> 
    </div> 
"; 
0

錯誤是圍繞表的名字你單引號:

$get_comments = "SELECT * FROM 'articlecomments' WHERE 'commentpost' = 'post1' LIMIT 0 , 30"; 

正確的是:

$get_comments = "SELECT * FROM articlecomments WHERE commentpost = 'post1' LIMIT 0, 30"; 

必須寫$行:

" . $row['commentname'] . " 
     </div> 
     <div class='col-md-9'> 
     " . $row['commentvalue'] . "