代码:
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");
上面的代码选择了一些行。当我传递参数移动黑色时,它会显示所有彩色手机。
但是预期结果只需要全部为黑色的手机,它应该拒绝其他颜色。
答案 0 :(得分:0)
愿这个建议帮助你。
在Sql查询中你检查了你的密钥对表的每个字段和你使用了A%。%那么你的搜索字符串每个字母与所有字段匹配会发生什么,所以可能性是最大匹配表的每个字段所以它显示所有手机。
如果您搜索&#34; 黑色&#34;然后,如果颜色是黑色的移动显示器,如果任何移动名称也是黑色也显示但移动颜色不是黑色。
所以你不能搜索抛出这个查询。
如果您对搜索进行分类,则会变得简单如同按名称搜索,颜色也是奖品等。