Я пытаюсь сделать расширенный поиск, я имел эту работу, но я делал полные запросы для каждого получить переменную, которая не была хороша, но она работалап.д.о. расширенный поиск построения запросов вопрос
Теперь я пытаюсь построить запрос зависит от того, пустая переменная url. Но я не могу понять, почему это не работает. Запрос работает, поскольку я протестировал это, я не строю запрос правильно?
это функция
public function search($man, $mod, $min, $max)
{
$this->currentLocation();
$bind = '';
$query .= 'SELECT listed_watches.*, watch.*, watch_images.* FROM listed_watches';
$query .= 'LEFT JOIN watch ON watch.Id = listed_watches.watchID';
$query .= 'LEFT JOIN watch_images ON listed_watches.url = watch_images.url';
$query .= 'WHERE listed_watches.sellto REGEXP :search';
if(!empty($man)){
$query .= 'AND listed_watches.manufacture = :man';
$bind .= "$smt->bindValue(':man', $man);";
}
if(!empty($mod)){
$query .= 'AND listed_watches.model = :mod';
$bind .= "$smt->bindValue(':mod', $mod);";
}
if(!empty($min)){
$query .= 'AND listed_watches.minPrice > :min';
$bind .= "$smt->bindValue(':min', $min);";
}
if(!empty($max)){
$query .= 'AND listed_watches.maxPrice < :max';
$bind .= "$smt->bindValue(':max', $max);";
}
$query .= 'GROUP BY listed_watches.id';
$smt = $this->pdo->prepare(''.$query.'');
$smt->bindValue(':search', "^[".$this->userLocation."]");
$bind;
return $smt->fetchAll();
}
И когда я искать и ввести выбрать $ человек и $ пн я получаю эту ошибку
Undefined variable: smt
Trying to get property of non-object in
эта ошибка судействе этой линии
$bind .= "$smt->bindValue(':mod', $mod);";
спасибо, но теперь им становится недопустимый номер параметра: параметр не был определен -> это указывает на выполнение() –
это не возможно, если вы сделаете это правильно, проверьте, если у вас есть это же число : params_in_sql и привязать параметры, добавить «эхо» в «if», если вы его не видите –