我在下面有这个代码。我的屏幕坏了。我认为它在 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/