我在数据库中有一个表,其中包含列名称:
Name
Department
organization
location
year
email
我有一个具有 3 个名称属性值的表单:department
, year
, organization
。
当用户填充任何这些属性时,我希望将其发布到我的 PHP 脚本,然后该脚本将仅根据填充的属性查询结果。
例如:
- 案例1:表单数据填的是部门和公司,年份留空
- 情况2:填写的数据为公司,年份部门为空,此类情况。
如何修改下面的查询脚本以获得所需的结果?
// Conneced to server and select database.
$sql="SELECT * FROM $tbl_name WHERE dept =$_post['dept'] and year =$_post['year'] and company =$_post['commpany'];
$result = mysql_query($sql);
while($rows=mysql_fetch_array($result)) {
?>
最佳答案
你应该在类似的地方使用动态
$where = "WHERE 1 ";
if(isset($_POST['dept']) && $_POST['dept']!="")
{
$dept = mysql_real_escape_string($_POST['dept']);
$where .= " AND dept='$dept' ";
}
if(isset($_POST['year']) && $_POST['year']!="")
{
$year = mysql_real_escape_string($_POST['year']);
$where .= " AND year='$year' ";
}
if(isset($_POST['commpany']) && $_POST['commpany']!="")
{
$commpany = mysql_real_escape_string($_POST['commpany']);
$where .= " AND commpany='$commpany' ";
}
$sql="SELECT * FROM `$tbl_name` ".$where;
注意: mysql_*
已弃用,使用 mysqli_*
或 PDO
关于php - sql查询需要进行哪些改变才能得到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25133388/