создать результат поиска с помощью оператора подготовки PDO дает ошибку - PullRequest
0 голосов
/ 15 мая 2018

когда я использую

if(!in_array($search_each, $commonwords))

этот код выдает ошибку, без этого он отлично работает
Я хочу создать результат поиска, но исключая некоторые общие слова , если не используется общие слова этот код работает нормально ...

ниже приведен выборочный результат поиска из базы данных

$t=strtolower($_POST['e']);
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,flat,offers,offer,etc';

$commonwords = explode(",", $commonwords);

if( strlen( $t ) <= 10 )
    echo "";
else {

    $search_exploded = explode ( " ", $t );
    $construct = '';
    foreach( $search_exploded as $search_each ) {
        if(!in_array($search_each, $commonwords)){
            $construct .="AND d_title LIKE ? ";
         }
    }

    include $_SERVER['DOCUMENT_ROOT'] . "/deal/database/db.php";
    $query =$con1->prepare("SELECT * 
                            FROM deals 
                            WHERE 1 $construct 
                            ORDER BY `d_id` DESC ");

    $params = array_map(function($term) { return "%$term%"; }, 
    $search_exploded);
    $query->execute($params);
    $found=$query->rowCount();
    if($found == 0){
        echo "no Result Found"; 
    }else{ 
        while($row_de=$query->fetch(PDO::FETCH_ASSOC)){
            $de_id=$row_de['d_id'];
            $de_title=$row_de['d_title'];
            $d_logo=$row_de['d_logo']   ;       
            $d_type=$row_de['d_type'];  
            echo  $de_title;
        }

1 Ответ

0 голосов
/ 15 мая 2018

если (! In_array ($ search_each, $ commonwords)) эта строка работает нормально,

думаю, что в $ search_exploded возникнет проблема, проверьте, имеет ли эта переменная значение или нет $ search_exploded = explode ("", $ t);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...