以及我在我的网站(汽车网站)搜索输入,即时通讯使用该搜索输入来搜索他们的品牌只有汽车...可以说奥迪,宝马等。 ..我想知道是否有一种方式,我可以键入像:只有在1输入多列搜索输入
奥迪R8,而不是什么都没有显示,它会显示该车,如 SELECT品牌,模型从汽车WHERE品牌= firstspace,型号=秒空间...
类似的东西,而不是创建两个输入...所以我只能在输入内输入全名奥迪R8 Spyder或只是奥迪R8,它将只显示R8型号...
谢谢,
以及我在我的网站(汽车网站)搜索输入,即时通讯使用该搜索输入来搜索他们的品牌只有汽车...可以说奥迪,宝马等。 ..我想知道是否有一种方式,我可以键入像:只有在1输入多列搜索输入
奥迪R8,而不是什么都没有显示,它会显示该车,如 SELECT品牌,模型从汽车WHERE品牌= firstspace,型号=秒空间...
类似的东西,而不是创建两个输入...所以我只能在输入内输入全名奥迪R8 Spyder或只是奥迪R8,它将只显示R8型号...
谢谢,
使用此:
<?php
$input = 'Audi R8';
$arr = explode(' ', $input); //to separate the input
$sql = "SELECT * FROM automoviles WHERE marca like '%$arr[0]%' or modelo like '%$arr[1]%'";
?>
编辑1与逃逸
<?php
$input = 'Audi R8';
$arr = explode(' ', $input);
$input1 = mysqli_real_escape_string($conn, $arr[0]);
$input2 = mysqli_real_escape_string($conn, $arr[1]);
$sql = "SELECT * FROM automoviles WHERE marca like '%$input1%' or modelo like '%$input2%'";
?>
嗨尝试使用PHP的爆炸功能,这样你就会得到两个变量。
<?php
$dcs_str = "audi m8";
$dcs_arr = explode(" ",$dcs_str); ?>
当我得到那些2个变量,我如何分别使用它们?像marca = variable1或model = variable2? –
使用foreach循环来使用这些变量。 –
您可以将该输入分为两部分。例如像这样:
var input = "Audi R8";
var space = input.indexOf(" ");
var firstspace = input.substring(0, space); // Audi
var secondspace = input.substring(space); // R8
所以,你的SQL会是这样的:
SELECT brand, model FROM cars WHERE brand = firstspace, model=secondspace
你可以使用LIKE。 – momouu
是的,但即时通讯使用此:“选择*从automoviles WHERE像'$ marca'或模式像'$ marca'或版本像'$ marca'LIMIT $偏移,$限制”;但如果我输入奥迪R8(它将不会返回任何内容),甚至不包括奥迪R8车型:p但如果我只输入audi,它将返回车... –
在您的变量前后添加%。 “SELECT * FROM automoviles WHERE像'%$ marca%'或modelo像'%$ marca%'或版本像'%$ marca%'LIMIT $ offset,$ limit”; – momouu