Php 获取where子句中的所有值
我在这段代码中遇到了麻烦,如果用户从选择下拉菜单中选择了“全部显示”,我只想从表行中获取所有数据 这是选择菜单 所以,这个菜单从这个表中抓取数据,但是如果他选择了All,那么在选项值之间回显的合适代码是什么:)Php 获取where子句中的所有值,php,mysql,Php,Mysql,我在这段代码中遇到了麻烦,如果用户从选择下拉菜单中选择了“全部显示”,我只想从表行中获取所有数据 这是选择菜单 所以,这个菜单从这个表中抓取数据,但是如果他选择了All,那么在选项值之间回显的合适代码是什么:) 如果用户选择“在下拉菜单中全部显示”,输入的正确代码是什么 你真的需要对你的输入进行消毒,至少用 关于您的实际问题:只需检查$speciality是否为空,并在不使用(speciality='$speciality')条件的情况下生成一个不同的查询。因为您的HTML引用了“special
如果用户选择“在下拉菜单中全部显示”,输入的正确代码是什么 你真的需要对你的输入进行消毒,至少用
关于您的实际问题:只需检查
$speciality
是否为空,并在不使用(speciality='$speciality')
条件的情况下生成一个不同的查询。因为您的HTML引用了“specialties”,而PHP引用了“regions”,所以我只想使用“regions”
if ($region=="All regions" ){
$sql = 'SELECT id, customer_name, seller_1_name, seller_2_name, FROM visits';
} else {
$region = mysql_real_escape_string($_POST['region']);
$date1 = mysql_real_escape_string($_POST['from_date']);
$date2 = mysql_real_escape_string($_POST['to_date']);
$product = mysql_real_escape_string($_POST['product']);
$speciality = mysql_real_escape_string($_POST['speciality']);
$type = mysql_real_escape_string($_POST['visit_type']);
$sql = "SELECT id, customer_name, seller_1_name, seller_2_name FROM visits Where (speciality ='$speciality') AND (visit_type ='$type') AND (product ='$product') AND (region ='$region') AND (visit_date BETWEEN '$date1' AND '$date2')";
}
$result = mysql_query($sql); ## This line is new.
$num = mysql_numrows($result);
$row = mysql_fetch_array($result);
您的代码易受SQL注入攻击。您确实应该使用准备好的语句,将变量作为参数传递到语句中,而这些参数不会对SQL进行求值。如果您不知道我在说什么,或者不知道如何修复它,请阅读.mysql_real_escape_string已被弃用,应该使用PDO,或者至少我知道mysqli_*函数,但解释如何更改整个操作代码以使用PDO远远超出了问题的范围。这就是为什么我说“至少”。+1,因为我很快就发现了这种情况另外,@AlanFoster看到OP使用的
mysql\uquot>命令也被弃用,我看不出有什么问题。似乎他还在学习,因为这是一个基本问题,所以我猜安全性并不是atm的最高优先级mysql\u real\u escape\u字符串未被弃用是的,措辞错误,mysql\u
命令未被弃用,只是高度不推荐。它们仍然可以支持较旧的应用程序。
if ($region=="All regions" ){
$region=$_POST['""'];
}
else ( $region=$_POST['region']);
$date1 =$_POST['from_date'];
$date2 = $_POST['to_date'];
$product=$_POST['product'];
$speciality=$_POST['speciality'];
$type=$_POST['visit_type'];
sql="SELECT id, customer_name, seller_1_name, seller_2_name FROM visits Where (speciality ='$speciality') AND (visit_type ='$type') AND (product ='$product') AND (region ='$region') AND (visit_date BETWEEN '$date1' AND '$date2')";
$result=mysql_query($sql); ## This line is new.
$num=mysql_numrows($result);
$row = mysql_fetch_array($result);
if ($region=="All regions" ){
$sql = 'SELECT id, customer_name, seller_1_name, seller_2_name, FROM visits';
} else {
$region = mysql_real_escape_string($_POST['region']);
$date1 = mysql_real_escape_string($_POST['from_date']);
$date2 = mysql_real_escape_string($_POST['to_date']);
$product = mysql_real_escape_string($_POST['product']);
$speciality = mysql_real_escape_string($_POST['speciality']);
$type = mysql_real_escape_string($_POST['visit_type']);
$sql = "SELECT id, customer_name, seller_1_name, seller_2_name FROM visits Where (speciality ='$speciality') AND (visit_type ='$type') AND (product ='$product') AND (region ='$region') AND (visit_date BETWEEN '$date1' AND '$date2')";
}
$result = mysql_query($sql); ## This line is new.
$num = mysql_numrows($result);
$row = mysql_fetch_array($result);