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);
}