2016-04-18 8 views
0

私はこのコードを以下に示します。私は壊れた画面を取得しています。私はそれがSQLステートメントにあると思うが、多分誰かが私の間違いを見つけるのを助けることができる。私がここでやっているのは、管理者から要求され、顧客が投稿した日付の顧客から管理者が要求した文書を記録することです。他の多くの情報と共に。関連する列を含むPHP SQL JOINステートメント

ドキュメントセンターのドキュメントID列をドキュメント要求されたテーブルのdocId列に結合して、ドキュメントセンターテーブルからドキュメント情報を取得したいとします。目標は、ファイル名とタイトルなどの両方のテーブルで同じ文書情報を繰り返す必要がないようにすることです。また、ファイルが保存されるディレクトリを把握するのに役立つdoctypeもあります。要求された文書のdocId tableは、docセンターテーブルの同じ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']; 

希望:

答えて

0

はこれを試してみてください。

+1

なぜOPは "これを試してください"? **良い答え**は、何が行われたのか、なぜそれがそのように行われたのかについての説明をいつも持っています。この質問を見つけて回答を読んでいるかもしれないので、OPのためだけでなく将来の訪問者のために 。 – RiggsFolly

+0

IDKどのような答えですが、私は彼がここで何をしたかを見ることができます。そして、唯一の質問は、selectクエリでdc.idがdc_idに変更された後で、 "ON"セクションに "dr。 docId = dc.id "このセクションのdc.idはdc_idに変更されますか、フェッチする前に元のままにしておきますか? –

+0

@RookieRecruits 'ON'と' WHERE'は元のテーブルの列のみを参照できますが、同じクエリの 'SELECT'節で作成された別名は参照できません。 – Barmar

関連する問題