gpt4 book ai didi

php - CURDATE() 过滤器不适用于搜索表单

转载 作者:行者123 更新时间:2023-11-29 21:40:41 24 4
gpt4 key购买 nike

我有一个正在为客户构建的网站,用户可以在其中搜索优惠券,搜索正在工作,但即使我在那里有一个日期规范,并检查优惠券是否有效,所有优惠券因为一家餐厅正在出现......我不明白这一点。这是我的查询:

include('includes/insert_saved_coup.php');
include('includes/connection.php');
global $con;

if(isset($_SESSION['user_id'])) {

if(isset($_POST['search_sub'])) {

$term = mysqli_real_escape_string($con,$_POST['term']);

$get_rest = "SELECT *
FROM menu_restaurants";

$run_rest = mysqli_query($con,$get_rest);
$row_rest = mysqli_fetch_array($run_rest);

$get_results = "SELECT *
FROM menu_coupons
WHERE coupon_expire > CURDATE()
AND coupon_desc LIKE '%".$term."%'
OR coupon_rest LIKE '%".$term."%'
OR coupon_title LIKE '%".$term."%'
OR coupon_amount LIKE '%".$term."%'
OR coupon_tag_one LIKE '%".$term."%'
OR coupon_tag_two LIKE '%".$term."%'
OR coupon_city LIKE '%".$term."%'
OR coupon_state LIKE '%".$term."%'
AND coupon_status = 'active'";

$run_results = mysqli_query($con,$get_results);
while($row_results = mysqli_fetch_array($run_results)) {

coupon_expire 字段是日期字段, coupon_status 字段是 varchar ...我每天在 phpmyadmin 中运行一个 cron 来更新状态字段以显示过期...但是当运行搜索时,它会显示该餐厅/城市/期限的所有优惠券,即使已过期或有效。

有什么想法吗? (我有一种感觉,这与我的查询有关)

最佳答案

问题是您混合了 AND/OR 条件,并且 AND 的优先级高于 OR。尝试将 WHERE 条件 block 括起来,如下所示

                  SELECT * 
FROM menu_coupons
WHERE coupon_expire > CURDATE()
AND coupon_status = 'active'
AND ( coupon_desc LIKE '%".$term."%'
OR coupon_rest LIKE '%".$term."%'
OR coupon_title LIKE '%".$term."%'
OR coupon_amount LIKE '%".$term."%'
OR coupon_tag_one LIKE '%".$term."%'
OR coupon_tag_two LIKE '%".$term."%'
OR coupon_city LIKE '%".$term."%'
OR coupon_state LIKE '%".$term."%' );

关于php - CURDATE() 过滤器不适用于搜索表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com