php - SQL参数警告

标签 php mysql sql

我想从 HTML 表单中查询 3 个表。我尝试了很多格式和条件,但这是唯一接近我想要实现的目标的格式和条件。我对此很陌生,我需要帮助。我不知道我缺少什么来显示输出。

这是我的代码:

if(isset($_POST['submit'])) {
    $Summary=$_POST['summary'];
    $Status=$_POST['status'];
    $Priority=$_POST['priority'];

    $db=mysql_connect (" ") or die ('I cannot connect to the database because: ' .  mysql_error()); 

    $mydb=mysql_select_db(" ");
}

$where = '';
if(isset($Status) && !empty($Status)){
    $where .= "status ='$Status' AND ";
}
if(isset($Priority) && !empty($Priority)){
    $where .= "priority ='$Priority' AND ";
}
if(isset($Summary) && !empty($Summary)){
    $where .= "summary ='$Summary' AND ";
}

$sql= "select * from data $where";
$result = mysql_query($sql); 

if (mysql_num_rows($result)==0){ 
    echo "No Match Found"; 
}else{ 
    while($row = mysql_fetch_array($result)) {
        echo $Not_Completed=$row['Not Completed'];
        echo $Completed=$row['Completed'];
        echo $Miscommunications =$row['Miscommunications'];
        echo $Not_Given_Access=$row['Not Given Access'];
        echo $Unskilled=$row['Unskilled'];
        echo $Missing_Parts=$row['Missing Parts'];
        echo $High=$row['High'];
        echo $Medium=$row['Medium'];
        echo $Low=$row['Low'];
        echo $EFirst_name =$row['EFirst_name'];
        echo $ELast_name=$row['ELast_name'];
        echo $Employee_id=$row['Employee_id'];
    }
}

这是我的 HTML 表单:

<select name="status"> 
    <option>status</option>
    <option>Completed</option>
    <option>Not Completed</option>
</select>

<select name="priority"> 
    <option>priority</option>
    <option>High</option>
    <option>Medium</option>
    <option>Low</option>
</select> 

<select name="summary"> 
    <option>summary</option>
    <option>Miscommunications</option>
    <option>Not Given Access</option>
    <option>Unskilled</option>
    <option>Missing Parts</option>
</select>

<div align="right"><input type="submit" value="Search">

我收到以下警告:警告:mysql_num_rows() 期望参数 1 为资源, bool 值在 C:\wamp\www\search.php 第 191 行给出//“if (mysql_num_rows($result)==0 )“...

欢迎所有建议。谢谢。

最佳答案

$conditions = array();

if(isset($Status) && !empty($Status)){
  $conditions[] = "status ='$Status'";
}
if(isset($Priority) && !empty($Priority)){
  $conditions[] = "priority ='$Priority'";
}
if(isset($Summary) && !empty($Summary)){
  $conditions[] = "summary ='$Summary'";
}

$where = '';
if (!empty($conditions)) {
  $where = "WHERE " . implode(' AND ', $conditions);
}

$sql= "SELECT * FROM data $where";

编辑:您能否发布结果:

if(isset($_POST['submit'])) {
    $Summary=$_POST['summary'];
    $Status=$_POST['status'];
    $Priority=$_POST['priority'];

    $db=mysql_connect (" ") or die ('I cannot connect to the database because: ' . mysql_error()); 

    $mydb=mysql_select_db(" ");
} else {
    echo "I might not be connected to a database...";
}

echo 'Connection error? ' . mysql_error();

echo 'Ping Result: ' . mysql_ping() === FALSE ? 'Not connected.' : 'Connected.';

$conditions = array();

if(isset($Status) && !empty($Status)){
  $conditions[] = "status ='$Status'";
}
if(isset($Priority) && !empty($Priority)){
  $conditions[] = "priority ='$Priority'";
}
if(isset($Summary) && !empty($Summary)){
  $conditions[] = "summary ='$Summary'";
}

$where = '';
if (!empty($conditions)) {
  $where = "WHERE " . implode(' AND ', $conditions);
}

$sql= "SELECT * FROM data $where";

echo "SQL Command: $sql";

$result = mysql_query($sql); 

echo 'Query error? ' . mysql_error();

if (mysql_num_rows($result)==0){ 
    echo "No Match Found"; 
}else{ 
    while($row = mysql_fetch_array($result)) {
        echo $Not_Completed=$row['Not Completed'];
        echo $Completed=$row['Completed'];
        echo $Miscommunications =$row['Miscommunications'];
        echo $Not_Given_Access=$row['Not Given Access'];
        echo $Unskilled=$row['Unskilled'];
        echo $Missing_Parts=$row['Missing Parts'];
        echo $High=$row['High'];
        echo $Medium=$row['Medium'];
        echo $Low=$row['Low'];
        echo $EFirst_name =$row['EFirst_name'];
        echo $ELast_name=$row['ELast_name'];
        echo $Employee_id=$row['Employee_id'];
    }
}

关于php - SQL参数警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16638198/

相关文章:

php - 调整大小和拇指功能有效,上传多个文件时除外

php - 从 MySQL 结果 php 返回一个多维数组

SQL执行计划

sql - 根据两个不同表中的时间戳和名称进行排序查询

php - 从 postgresql 获取树结构数据

php - Laravel Eloquent 乘列总和

mysql - OSGi 和 Hibernate - 不合适的驱动程序

mysql - mysql中如何合并多行数据

php - 在 php 中使用发送确认电子邮件

sql - 使用 SQL 排序规则影响性能