2017-01-30 55 views
1

我得到了一個輸出用戶註釋的while loop。 我需要它是否包含從filter_tablePHP - MYSQL來自while循環的包含任何指定詞的篩選變量

查詢的評論

$cm_qr = $db -> prepare ("SELECT comment FROM comment_tbl WHERE post_id = :pid"); 
$cm_qr -> bindParam (":pid", $pid); 
$cm_qr -> execute(); 
    while($row = $cm_qr -> fetch()){ 
     $comment = $row_cm_qr['comment']; 


     } 

查詢我的過濾詞

   $check_filter = $db -> query ("SELECT filter_word FROM filter_tbl"); 
       $check_filter -> execute(); 
       while($filter_row = $check_filter -> fetch(PDO::FETCH_ASSOC)){ 
        $fword = $filter_row['filter_word']; 
       } 
        $fwords = array($fword); 
+1

有一個問題在有或這是使用褻瀆的藉口? –

回答

0

這就是你所得到的列表中的任何字來過濾評論過濾詞的錯誤。你沒有從他們那裏做任何數組。
爲此,你可使用由PDO提供的專用提取模式,PDO::FETCH_COLUMN

$fwords = $db->query("SELECT filter_word FROM filter_tbl")->fetchAll(PDO::FETCH_COLUMN); 

這會給你與字陣列。

由於過濾,只寫一個簡單的循環(while循環裏)這樣

foreach ($fwords as $word) 
{ 
    if (strpos($comment, $word) !== false) 
    { 
     continue 2; //skip that comment from processing 
    } 
} 
+0

這將返回一個爲foreach提供的無效參數() – thewheeloftimefan

+0

我的不好,錯誤的方法名稱 –

+0

它現在工作!謝謝你,我試圖解決這個問題近2個小時,我無法得到它。謝謝!謝謝! – thewheeloftimefan