php - sql查询需要进行哪些改变才能得到结果

标签 php mysql database http-post

我在数据库中有一个表,其中包含列名称:

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/

相关文章:

r - 如何在 R 中导入多个 xlsx 工作表

android - 是否可以在 Android 应用程序中使用 Neo4j 数据库?

sql - 从 SQL 数据库中获取 Scala 中的一个值

php - 如何在 Codeigniter 上使用数据表(尤其是制作搜索框)?

php - 如何合并多个 mySQL 查询?

php - 在网络上显示 iPhone 照片时尊重 EXIF 方向

当将 COUNT 与 GROUP BY 一起使用时,MySQL 包含零行

php - 如何使用php检查数据是否插入MySQL

mysql - 无法将 json 从 android 插入 mysql

php - 如何在 PHP 中从一个文件运行一组 SQL 查询?