2017-01-30 54 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