Full text search engine using explode between different tables

0

How can I fix my code? I need that my search engine can find my posts by entering an array of words but I look for it in 3 different tables that I have in my query, for example if I put 3 words that look for them in my keywords, title or body_value table that is the body of the post

<?php

if (!empty($_GET['text'])) {
    $words = explode(" ", $_GET['text']);
    $limit = 40;
    $result = array();

    if (count($words) > 0) {
        $keyword = "'%".$words[0]."%'";

        for($i=1;$i<count($words);$i++){
            $keyword .= " or field_data_field_keywords.field_keywords_value like '%".$words[$i]."%'";
        }

        $body = "'%".$words[0]."%'";

        for($j=1;$j<count($words);$j++){
            $body .= " or field_data_body.body_value like '%".$words[$j]."%'";
        }

        $title = "'%".$words[0]."%'";

        for($k=1;$k<count($words);$k++){
            $title .= " or node.title like '%".$words[$k]."%'";
        }
        $alias = $sql->select_simple("SELECT field_data_field_keywords.entity_id, field_data_field_keywords.field_keywords_value, alias, node.title, field_data_body.body_value, node.status
            FROM field_data_field_keywords
            LEFT JOIN node
            ON field_data_field_keywords.entity_id = node.nid
            LEFT JOIN field_data_body
            ON field_data_body.entity_id = field_data_field_keywords.entity_id
            LEFT JOIN url_alias
            ON source = CONCAT('node/',field_data_field_keywords.entity_id)
            WHERE (field_keywords_value LIKE ".$keyword.")
            OR (body_value LIKE ".$body.")
            OR (title LIKE ".$title.")
            AND (node.status = 1)
            ORDER BY field_data_field_keywords.entity_id DESC
            LIMIT 10 ");

        while (!empty($alias) && $url = mysqli_fetch_assoc($alias)) {
            $temp = file_get_contents($rest . $url['alias']);
            if (!empty($temp)) {
                $temp = json_decode($temp, true);
                unset($temp['articulo'][0]['ads']);
                unset($temp['articulo'][0]['adsTitles']);
                unset($temp['articulo'][0]['body']);
                unset($temp['articulo'][0]['bodyAMP']);
                unset($temp['articulo'][0]['rel']);
                array_push($result, $temp['articulo'][0]);
            }
        }

    }


    echo json_encode($result);
}
    
asked by Giancarlo Andre Lopez Silva 29.06.2018 в 20:24
source

0 answers