Php 通过传递多个关键字,从前端搜索搜索框
代码: 上面的代码选择了一些行。当我传递参数时,手机会显示所有颜色的手机Php 通过传递多个关键字,从前端搜索搜索框,php,sql,Php,Sql,代码: 上面的代码选择了一些行。当我传递参数时,手机会显示所有颜色的手机 但预期结果只需要全部为黑色的手机,它应该拒绝其他颜色。这个建议可以帮助您 在Sql查询中,您是否检查了表中每个字段的键,并使用了%。%因此,您的搜索字符串每个字母都与所有字段匹配,因此与表中每个字段匹配的可能性最大,因此它会显示所有移动字段 如果搜索黑色,则如果颜色为黑色,则显示手机,如果任何手机名称为黑色,则显示手机,但手机颜色不是黑色 因此,您无法搜索并抛出此查询 如果按名称、颜色和奖品等对搜索进行分类,会使搜索变得容
但预期结果只需要全部为黑色的手机,它应该拒绝其他颜色。这个建议可以帮助您 在Sql查询中,您是否检查了表中每个字段的键,并使用了%。%因此,您的搜索字符串每个字母都与所有字段匹配,因此与表中每个字段匹配的可能性最大,因此它会显示所有移动字段 如果搜索黑色,则如果颜色为黑色,则显示手机,如果任何手机名称为黑色,则显示手机,但手机颜色不是黑色 因此,您无法搜索并抛出此查询
如果按名称、颜色和奖品等对搜索进行分类,会使搜索变得容易。请将您的数据库/表格架构添加到您的问题中。pkey pname mfg psize mrp saleprize pType pcolor保修图像名称
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
$key1 = trim($_POST['key']);
$key2 = preg_replace("#[\s]+#", " ", $key1);
$key = explode(" ", $key2);
$con = mysql_connect("localhost","root","1234");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("productdetails", $con);
for($i = 0; $i < count($key); $i++){
$result = mysql_query("select * from proddetail where pname like '%".$key[$i]."%' or pcolor like '%".$key[$i]."%' or psize LIKE '%".$key[$i]."%' or mrp LIKE '%".$key[$i]."%' or saleprize LIKE '%".$key[$i]."%' OR pType LIKE '%".$key[$i]."%' or warranty LIKE '%".$key[$i]."%' or imagename LIKE '%".$key[$i]."%' or pKey LIKE '%".$key[$i]."%' GROUP by pname");