Хорошо, поэтому у меня есть команда sql. См. Ниже.SQL; ИЛИ не работает
$sql = "SELECT * FROM orders
WHERE loggedtime BETWEEN :time AND :times
AND name LIKE :keyword OR odryname LIKE :keyword OR pdryname LIKE :keyword
OR jlc LIKE :keyword OR odrphone LIKE :keyword
OR biid LIKE :keyword OR dstreet LIKE :keyword ";
$q=$con->prepare($sql);
$q->bindvalue(":keyword", "%".$keyword."%");
Так работает команда до первого или в нем ... Он будет проверять, если записываемое время это то, что я вставил и NAME, как ключевое слово ..
Единственная часть из команда, которая должна быть постоянной, равна WHERE loggedtime = :time
. Остальное должно быть основано на совпадении ключевого слова ... Но это не должно отображаться вообще, если время в этом порядке неверно.
Когда вы объединяете AND и OR в одном и том же запросе, убедитесь, что вы понимаете правила их оценки и применяете скобки там, где это необходимо .... LIKES (WHISKEY OR PIZZA) И CRICKET - это не то же самое, что и LIKES WHISK Y OR (PIZZA И CRICKET) –
... или еще лучше. Чтобы сделать вещи более ясными в целом, я бы предложил всегда заключать в скобки условия, содержащие AND & OR;, даже если вы знаете порядок оценки: это один из немногих вещей, которые ваш ум анализирует при чтении, а когда вы вернетесь к нему позже, помнить/читать ваши намерения. – Uueerdo
@MarkBaker Это сработало, я понимаю, что теперь для этого используются скобки. Спасибо. Пожалуйста, отправьте ответ, чтобы я согласился. – Kmiles1990123