Я пытаюсь использовать два запроса с использованием между, но когда я добавляю код между, это не работает. Это код, который работает для меня, прежде чем использовать МЕЖДУ.
$result = mysql_query("SELECT name , liking , id , address , description FROM locations WHERE liking LIKE '%{$likeArray[$newCount]}%'");
Это код между, который не работает.
$result = mysql_query("SELECT name , liking , id , address , description FROM locations WHERE ‘long’ BETWEEN ‘$Slong’ AND ‘$Blong’ AND lat BETWEEN ‘$Slat’ AND ‘$Blat’ AND liking LIKE '%{$likeArray[$newCount]}%'");
У вас есть несколько вопросов здесь.
Во-первых, я скажу, что не используйте функции mysql_ *, они устарели в 5.5+ и удалены в 7.0. Ваши альтернативы — функции mysqli_ * или использование PDO. Я предпочитаю PDO, но я понимаю, почему использование mysqli_ * было бы удобно, так как вы могли бы сделать текстовый поиск для mysql_
и заменить на mysqli_
,
Теперь к вашей проблеме. Вы используете обратные и прямые тики для всего, где вы должны использовать обратные тики и одинарные кавычки. Имена столбцов должны быть заключены в обратные кавычки (`), а текст должен быть заключен в одинарные кавычки (‘), как показано ниже:
$result = mysqli_query(
"SELECT name , liking , id , address , description FROM locations WHERE `long` BETWEEN '$Slong' AND '$Blong' AND `lat` BETWEEN '$Slat' AND '$Blat' AND `liking` LIKE '%{$likeArray[$newCount]}%'");
РЕДАКТИРОВАТЬ: Кроме того, вы широко открыты для SQLi (SQL-инъекция) — использование PDO и подготовленные заявления устранят эту угрозу. Есть хорошее руководство по использованию PHP PDO Вот.
Других решений пока нет …