PHP MySQL如何做一个比较复杂的查询


PHP MySQL how to do a more complex query

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

我在DB中有2个表,我试图从拉:项目和客户。在项目表中保存了一个Client_ID。

现在我试图检索clientName WHERE项目。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。重要的代码是查询。

如果这不是很清楚,请让我知道我可以提供什么其他细节。

如果我理解正确,您需要根据项目表中的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']