2016-10-30 9 views
0

何をしようとしていますか?PDOのデータを最大3つの異なるテーブルから要求する

私はWebアプリケーションのダッシュボードページに請求書データを表示しようとしています。私が来た小さな道路ブロックは、整数に基づいてデータを表示しています。例えば;

Invoice 1 -> Bill User 1 

私は請求書が自分の名前、例を表示割り当てられている人へのユーザーや会社のいずれかのためにその整数を持っている達成しようとしています。私は、二次のクエリを記述しますが、私は、これは非常にあなたとPDOでは必要ありません知っている古い学校のMySQLを使用していた場合はここで

BillContact->1 (becomes) BillContact->John Smith 

はPDO enter image description here

からPHPでの私のデータの現在の出力でありますUNIONまたはJOINを使用するだけで問題はありません。PDOやUNION/JOIN関数に熟練していないのですが、この質問を将来のデータベースクエリで使用する方法を学ぶための方法として使用したいと思います。

Contact Billingには割り当てられた値がありますが、同じデータベース内の連絡先テーブルの連絡先の名前で置き換えてください。

ここに現在のデータをプルするPDOコードがあります。

$database->query('SELECT * FROM invoices LIMIT 10'); 
$rows = $database->resultset(); 

echo ... table html here 

foreach($rows as $row) 
        { 
        ... td html here 
        } 

echo ... 

次に、渡されるIDに応じてContacts/Companiesテーブルから取得したい値を示します。事前に

contacts   companies 
.firstname   .companyname  
.lastname 

enter image description here

感謝。

+1

私はあなたがPDOであるとは思っていませんが、標準のSQLコードを実行することができます。他のデータベース拡張と同様です。 –

+0

連絡先テーブルのスキーマを追加できますか? – Akshay

+0

@ÁlvaroGonzálezPDO - > PHPデータオブジェクト。私はそれが何であるか知っていますが、私はそれを嫌うことが起こりました。古い学校のSQLを狂気なく使用するほうがはるかに簡単でした:良い古い$ fooの代わりにfooを用意しました – 0111010001110000

答えて

1

あなたの問題を解決するための簡単な結合です。

try 
{ 
$s = $conn->prepare("SELECT inv.*,c.* from invoices inv, contacts c where inv.contact_billed = c.id"); 
$s->execute(); 
} 
catch(PDOException $e) 
{ 
echo $e->getMessage(); 
} 
+2

[報告するためにエラーをキャッチしないでください](https://phpdelusions.net/pdo#catch) –

+0

@YourCommonSense リンクメイトをありがとう、私は確かに記事全体を通って知識を増やすだろう:) – Akshay

+0

決して気にしない – 0111010001110000

関連する問題