Как добавить ещё один столбец для поиска в sql

Рейтинг: -1Ответов: 1Опубликовано: 31.05.2023

Нашел код на просторах интернета, который осуществляет поиск. Проблема в том, что я не могу его расширить и включить ещё один столбец, в котором будет осуществляться поиск. Там используются какие-то кавычки. Я раньше с таким не сталкивался. Помогите пожалуйста включить ещё столбец title в поиск.

<?php
  require 'db.php';

$query = $_POST['query'];
$mass = explode(' ', $query);
$count_mass = count($mass);

  for ($i=0; $i <$count_mass ; $i++) {
    if ($i==0) {
      $part1="`text` LIKE '%".$mass[0]."%'";
    } else {
      $part2 ="AND `text` LIKE '%".$mass[$i]."%'";
      $part1 = $part1.$part2;
    }
  }

  $result = R::getAll("SELECT * FROM `articles` WHERE".$part1."ORDER BY `id` DESC ");
  foreach ($result as $row) {
    echo $row['title'];
  }
?>

$mass берется из поля ввода и проходит через аякс. В нем могут содержаться целые предложения для поиска. Не понимаю зачем минусить когда можно предложить помощь. Не все же кодеры являются гугл разработчиками. У меня например образование совсем не связано с программированием.

Ответы

▲ 0

Ваш код выдаст предупреждение, $part1 не объявлена перед циклом. Увидеть бы что в переменной $mass.

<?php
  require 'db.php';

  $query = $_POST['query'];
  $mass = explode(' ', $query);
  $count_mass = count($mass);

  $where=array();
  for ($i=0; $i <$count_mass ; $i++) {
    if ($i==0) {
      $where[] = "`text` LIKE '%".$mass[0]."%'";
    } else {
      $where[] = "`text` LIKE '%".$mass[$i]."%'";
      $where[] = "`title` LIKE '%что_надо_найти%'";
    }
  }

  $result = R::getAll("SELECT * FROM `articles` WHERE".join(" AND ",$where)." ORDER BY `id` DESC");
  foreach ($result as $row) {
    echo $row['title'];
  }
?>