PHP SQL JOIN 语句与相关列

标签 php mysql join

我在下面有这个代码。我的屏幕坏了。我认为它在 sql 语句中,但也许有人可以帮助发现我的错误。我在这里所做的是记录管理员向客户请求的文档以及管理员请求的日期和客户发布的日期。还有很多其他信息。

我想通过将文档中心中的文档 id 列与文档请求表中的 docId 列连接起来,从文档中心表中提取文档信息。目标是这样我就不必在两个表上重复相同的文档信息,例如文件名和标题以及文档类型,这有助于脚本确定文件将存储在哪个目录中。请求的文档中的 docId table 与文档中心表中的 id 相同。

        if($res = $this->dbConnection->query("SELECT dr.id, dr.custId, dr.docId, dr.dateRequested, dr.requestedBy, dr.modifiedOn,
                                              dr.datePosted, dc.document, dc.documentTitle, dc.docType, dc.id
                                              FROM docsRequested dr
                                              INNER JOIN docCenter dc ON dr.docId=dc.id
                                              WHERE dr.custId = '$this->custId' LIMIT 0, 3")){
            while($data = $res->fetch_assoc()){
            $docId = $data['dr.id'];
            if($data['dc.docType'] == 'img'){
                $filedir = "img";
            } elseif($data['dc.docType'] == 'pdf') {
                $filedir = "loandocs";
            }
            printf("<th><a href=\"edit-doc.php?username=$this->username&id=$docId&custId=$this->custId\"> <button type=\"submit\" class=\"btn\"> Edit </button></a></th>
                    <th><a href=\"delete-doc.php?username=$this->username&id=$docId&custId=$this->custId\"> <button type=\"submit\" class=\"btn\"> Delete </button></a></th>
                    <th><a href=\"%s/%s\">%s</a></th>
                    <th>%s</th>
                    <th>%s</th>
                    <th>%s</th>
                    <th>%s</th>
                    <th>%s</th>
                    </tr>", $filedir, $data['dc.document'], $data['dc.documentTitle'], $data['dr.dateRequested'], $data['dr.requestedBy'], $data['dc.docType'], $data['dr.datePosted'], $data['dr.modifiedOn']);
            }
        }

我还尝试在sql语句中使用SELECT dr.*, dc.*来跳过一一调用每一列。如有任何帮助,我们将不胜感激。

最佳答案

试试这个:

if($res = $this->dbConnection->query("SELECT dr.id AS dr_id, dr.custId, dr.docId, dr.dateRequested, dr.requestedBy, dr.modifiedOn,
                                              dr.datePosted, dc.document, dc.documentTitle, dc.docType, dc.id AS dc_id
                                              FROM docsRequested dr
                                              INNER JOIN docCenter dc ON dr.docId=dc.id
                                              WHERE dr.custId = '$this->custId' LIMIT 0, 3"))

after your fetch assoc use this :
$data['dr_id'] and $data['dc_id'];

希望对您有帮助。

关于PHP SQL JOIN 语句与相关列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705820/

相关文章:

javascript - 在脚本jquery中调整图像大小

mysql - 如何将sql中AVG函数的小数位限制为2位?

php - Codeigniter 根据两个连接条件连接两个表

php - MySQL UPDATE 列的值并用旧值添加新值

PHP:is_array 在不应该返回 false 时返回 false

php - 在不同端口上使用php连接到mysql数据库

php - 如何在单个 HTTP 响应中使用 PHP 从 Mysql 提供 4 个图像(Blob)?

mysql - 如何获取mysql数据库的大小?

mysql:表中未在另一个表中引用的行的列表

mysql - JOIN 查询花费很长时间并产生问题“将 HEAP 转换为 MyISAM