需要选择该行中的特定行和特定列,并将其与php变量进行比较

时间:2015-06-04 19:45:57

标签: php mysql

这是我执行此操作的代码块。它工作正常,直到它到达最后一个if语句。我无法使用Department_ID找到Graphics列。我试图检查用户输入是否等于表中的id。然后检查该id是否需要完成图形工作。为此,我需要找出对于该特定项目图形在数据库中是1。

if($graphics_id != Null)
{   
    $query = mysqli_query($connect,"SELECT * FROM Project_Overview WHERE Project_ID='".$graphics_id."'"); 
    $row = mysqli_fetch_assoc($query);
    //echo $row['Project_ID'];

    if($graphics_id == $row['Project_ID']) //if the graphics_id matches a project_id in the table
    {
        $result =  mysqli_query($connect, "SELECT Graphics FROM Department WHERE Department_ID ='".$graphics_id."'")
        $row = mysqli_fetch_assoc($result);

        if($result)
        {
            echo $row['Department_ID'];
        } else {
            echo "This Project does not require graphics!"
        }   
    } else {
        echo "Project_ID ".$graphics_id." does not exist!";
    }       
}

1 个答案:

答案 0 :(得分:0)

一些想法:

  • 第二个SELECT语句选择Graphics列,但稍后您回显$row['Department_ID'];,该$row应为空,因为Graphics中的唯一键将是if($result)
  • 最后一个if-Statement是if($row)。你的意思是$result吗?如果mysqli_query为假(因此“此项目不需要图形!”,则打印出来),这表示SELECT *已失败,可能是因为第二个SQL语句中出错。 / LI>
  • 而且,正如ThomasEllis所说,JOIN会更好,而$graphics_id没有错,但可能会比你需要的更多(或许)。
  • 根据$graphics_id_escaped = mysqli_real_escape_string($connect, $graphics_id);的来源(用户输入?),出于安全考虑,您应该考虑转发它(private String text="Hi"; private String emergencyNum="00962789113300"; - 以防万一;)