Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery AJAX到MySQL在($\u GET)请求中的位置。排除某些结果_Jquery_Mysql_Ajax_Checkbox_Where In - Fatal编程技术网

Jquery AJAX到MySQL在($\u GET)请求中的位置。排除某些结果

Jquery AJAX到MySQL在($\u GET)请求中的位置。排除某些结果,jquery,mysql,ajax,checkbox,where-in,Jquery,Mysql,Ajax,Checkbox,Where In,当我点击“华硕”复选框时,结果是所有型号的“华硕”都有“尺寸”,很好。但当我同时点击“华硕”和“15”复选框时,结果是所有这种尺寸的型号,包括“宏碁”等等。它必须如何工作(至少在我的想象中:)-同时点击“华硕”和“15”,并获取仅与点击(选中)复选框相关的数据 多谢各位 复选框: <input type="checkbox" name="Acer"> Acer <input type="checkbox" name="Asus"> Asus ...

当我点击“华硕”复选框时,结果是所有型号的“华硕”都有“尺寸”,很好。但当我同时点击“华硕”和“15”复选框时,结果是所有这种尺寸的型号,包括“宏碁”等等。它必须如何工作(至少在我的想象中:)-同时点击“华硕”和“15”,并获取仅与点击(选中)复选框相关的数据

多谢各位

复选框:

    <input type="checkbox" name="Acer"> Acer
    <input type="checkbox" name="Asus"> Asus
...
    <input type="checkbox" name="15.6"> 15''
    <input type="checkbox" name="17"> 17''
    <input type="checkbox" name="trademark" value="Acer"> Acer
    <input type="checkbox" name="trademark" value="Asus"> Asus
....    
    <input type="checkbox" name="size" value="15.6"> 15''
    <input type="checkbox" name="size" value="17"> 17''
MySQL查询:

$g = $_GET['q'];
if(isset($g))   {
    $param = "" . str_replace(",", "','", $_GET['q']) . "";
    $sql = "SELECT * FROM `notebook` WHERE `trademark` IN ('$param') OR `size` IN ('$param') ORDER BY `trademark`";
    $query = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_array($query)) {
        echo '<p>'.$row['trademark'].' = '.$row['size'].'</p>';
    }
}
$g=$\u GET['q'];
如果(国际标准集($g)){
$param=”“.str_replace(“,”,“,”,“$”获取['q']);
$sql=“从`notebook`中选择*,其中`trademark`按`trademark``顺序排列(`param')或`size`按`trademark``顺序排列;
$query=mysql\u query($sql)或die(mysql\u error());
while($row=mysql\u fetch\u array($query)){
回显“”.$row['trademark'].=”.$row['size'..

”; } }
您不想使用AND而不是OR吗


如果要获得所有匹配商标和所有匹配大小的结果,则应使用and,它仅在匹配商标和大小时返回结果。

要筛选结果,必须分别使用两个参数

我的建议是:

复选框:

    <input type="checkbox" name="Acer"> Acer
    <input type="checkbox" name="Asus"> Asus
...
    <input type="checkbox" name="15.6"> 15''
    <input type="checkbox" name="17"> 17''
    <input type="checkbox" name="trademark" value="Acer"> Acer
    <input type="checkbox" name="trademark" value="Asus"> Asus
....    
    <input type="checkbox" name="size" value="15.6"> 15''
    <input type="checkbox" name="size" value="17"> 17''
mysql:

$g = $_GET['q'];
$h = $_GET['p'];
$wheresql="";
$where=0;
if(isset($g))   {
    $where=1;
    $param = "" . str_replace(",", "','", $_GET['q']) . "";
    $wheresql.="`trademark` IN ('$param')";
}
if(isset($h))   {
    if($where==1){$wheresql.=" AND ";}
    $where=1;
    $param = "" . str_replace(",", "','", $_GET['p']) . "";
    $wheresql.="`size` IN ('$param')";
}
if($where==1){
    $sql = "SELECT * FROM `notebook` WHERE ".$wheresql." ORDER BY `trademark`";
    $query = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_array($query)) {
        echo '<p>'.$row['trademark'].' = '.$row['size'].'</p>';
    }

}
$g=$\u GET['q'];
$h=$_GET['p'];
$wheresql=“”;
$where=0;
如果(国际标准集($g)){
$where=1;
$param=”“.str_replace(“,”,“,”,“$”获取['q']);
$wheresql.=“$param')中的`trademark`IN'”;
}
如果(isset($h)){
如果($where==1){$wheresql.=“AND”;}
$where=1;
$param=“”.str_replace(“,”,“,”,$”获取['p']);
$wheresql.=“`size`IN('$param')”;
}
如果($where==1){
$sql=“从`notebook`WHERE.$wheresql.`商标`ORDER中选择*”;
$query=mysql\u query($sql)或die(mysql\u error());
while($row=mysql\u fetch\u array($query)){
回显“”.$row['trademark'].=”.$row['size'..

”; } }
小说明:您有两组按名称区分的复选框,并在jquery代码中分别使用它们,使其能够在两个变量中发送到mysql搜索,然后在mysql搜索脚本中,为每个变量执行其“where”搜索,
$where
变量有两个用途:第一,如果检查了任何商标和大小,则将
和“
添加到sql中;第二,检查是否有任何要搜索的条件(如果调用时没有参数,则不会进行搜索)

我没有测试代码:p


对不起,我的英文是

在运行
$\u将
变量直接输入SQL查询之前,您可能会尝试使用,而不会解决问题。当您单击第一个参数“Asus”时,它将等待第二个参数“size”。但我想在每次点击后获取数据。两个选项。使用JavaScript将当前结果集过滤为仅选择的大小,或者重新发送商标和大小并获得新的模型列表,然后清除当前列表并使用新列表重建它。Pablo非常感谢。你的代码是完美的。我刚刚修复了本地主机mysql版本的mysql语法。格雷西亚斯。对不起,我的西班牙语。