PHP MySQL如何做更复杂的查询

时间:2011-08-24 01:54:50

标签: php mysql

我创建了一个模块,用于使用PHP,jQuery和MySQL来搜索和返回结果。

我在数据库中有两个表,我试图从中提取:项目和客户。在项目表中,保存了Client_ID。

现在我正在尝试检索clientName WHERE projects.Client_ID = clients.Client_ID

这是我的代码:

    $dbc = @mysqli_connect($db_host, $db_user, $db_pass,
    $db_name);

if (!$dbc) {
    trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
}

if(isset($_GET['keyword'])){
    $keyword =  trim($_GET['keyword']) ;
$keyword = mysqli_real_escape_string($dbc, $keyword);



$query = "SELECT projects.Client_ID, projects.projectNumber, projects.projectName, projects.projectManager, projects.expectedDate, projects.address, projects.CreationDate FROM projects WHERE projectNumber like '%$keyword%' or projectName like '%$keyword%' or address like '%$keyword%'";

$result = mysqli_query($dbc,$query);

if($result){
    if(mysqli_affected_rows($dbc)!=0){
     while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){

     echo '<li> <b>'.$row['projectNumber'].'</b> - '.$row['projectName'].
     '<table width=\"100%\">
        <tr >
                <td><b>Project Manager</b></td>
                <td><b></b></td>
                <td width=\"200px\"><b>Address</b></td>
                <td><b>Expected Date</b></td>
                <td><b>Created Date</b></td>
        </tr>
        <tr><td colSpan=\"5\"></td></tr>
        <tr>
                <td><i>'.$row['projectManager'].'</i></td>
                <td><i></i></td>
                <td><i>'.$row['address'].'</i></td>
                <td><i>'.$row['expectedDate'].'</i></td>
                <td><i>'.$row['CreationDate'].'</i></td>
        </tr>
</table>
     </li>
     <hr />'   ;
    }
    }else {
        echo 'No Results for :"'.$_GET['keyword'].'"';
    }

}
}else {
    echo 'Parameter Missing';
}




?>

我迷路了。我自己尝试了很多东西但无济于事。

目标是显示存储在客户端数据库中的clientName。重要的代码是查询。

如果不清楚,请告诉我其他可以提供的详细信息。

1 个答案:

答案 0 :(得分:0)

好的,如果我理解正确,你需要客户端表中的客户端名称,基于项目表中的client_ID。

您需要将第15行的SQL查询修改为

    $query = "SELECT clients.clientName, projects.Client_ID, projects.projectNumber, projects.projectName, projects.projectManager, projects.expectedDate, projects.address, projects.CreationDate 
    FROM projects 
    LEFT JOIN clients on projects.Client_id = clients.Client_ID
    WHERE projectNumber like '%$keyword%' or projectName like '%$keyword%' or address like '%$keyword%'";  

你需要将它输出到某个地方的表中,所以在你的循环中显示放在变量中的数据

    $row['clientName']