2016-08-22 6 views
0

私は2つのテーブルを持っています。条件付きMysql foreachは他のテーブルレコードに依存します

t1t2

t1は、マップのINFOMATIONを格納しました。

+----------+----------------+ 
| ID  | title   | 
+----------+----------------+ 
| 1  | extra1   | 
| 2  | extra2   | 
| x  | x    | 
+---------------------------+ 

+--------+-----------+-----------+------------+-----------+ 
| ID  | maptitle | item1  | item2  |item.$x | 
+--------+-----------+-----------+------------+-----------+ 
| 1  | Amap  | 1000  | 2000  |x   | 
| 2  | Bmap  | 2000  | 3000  |x   | 
| 3  | Cmap  | 3000  | 4000  |x   | 
+---------------------------------------------------------+ 

itemxされ、次のように行数t2 t2テーブル内に依存します。

t2は、以下のようにt1

t1テーブルのためにいくつかの追加情報を格納することでした

ファーst、私のスクリプトinsertt2への新しいデータ、t1item.$xを追加します。 $xのIDはt2です。しかし、私は問題に直面したとき、私queryデータと、今のように以下の私のコード:HTMLで

$mapslist = DB::fetch_all("SELECT * FROM ".DB::table('t1')." ORDER BY id ASC"); 
foreach($mapslist as $mn => $ml){ 
    $mapslista[] = $ml; 
} 

私の出力コーディング:以下のように

<!--{loop $mapslista $mn $ml}--> //This is looping in my html 
    <div>{$ml[id]} , {$ml[maptitle]} {$ml[item.$x]}</div> 
<!--{/loop}--> //Looping END 

//below is what I guess 
<!--{loop $mapslista $mn $ml}--> //This is looping in my html 
    <div>{$ml[id]} , {$ml[maptitle]} , <!--{loop again}-->{$ml[item]}, {$ml[item2]} {$ml[item3]} <--{/loop}--></div> //the $ml[item.$x], the $x is depend on how many row in t2 
<!--{/loop}--> //Looping END 

最終出力(HTML):

1 , Amap 
2 , Bmap 
3 , Cmap 
t2だけ ID 1を得た場合

私の質問は、どのように、そしてt1item1データを表示していますか?私t210 rows dataを得た場合は、t1item1item10までのデータを表示しますか?以下は

は、私が期待するものである(例:t2のみ1行、私のt1.itemitem1を持っている必要がある場合)

1 , Amap , 1000 
2 , Bmap , 2000 
3 , Cmap , 3000 

は例t2が、その後2行、私のt1.itemも持っている必要がありitem1item2列を持っている場合。最終出力は

1, Amap , 1000 , 2000 
2, Bmap , 2000 , 3000 
3, Cmap , 3000 , 4000 

ありがとうございます。

+2

あなたの質問は不明です。希望する出力を含めてください。 –

+0

私は自分の質問を編集しています。一見ありがとうございます。 –

答えて

0

私が質問をよく理解しているかどうかわかりませんが、単にテーブルを結合する必要はありませんか?

$mapslist = DB::fetch_all("SELECT * FROM ".DB::table('t1')." AS t1 LEFT JOIN ".DB::table('t2')." AS t2 ON t2.id = t1.item.$x ORDER BY t1.id ASC"); 
foreach($mapslist as $mn => $ml){ 
    $mapslista[] = $ml; 
} 
関連する問題