我有2张桌子。
t1
和t2
。
t1
正在存储地图信息。
t2
正在为t1
t1
表格如下:
+--------+-----------+-----------+------------+-----------+
| ID | maptitle | item1 | item2 |item.$x |
+--------+-----------+-----------+------------+-----------+
| 1 | Amap | 1000 | 2000 |x |
| 2 | Bmap | 2000 | 3000 |x |
| 3 | Cmap | 3000 | 4000 |x |
+---------------------------------------------------------+
itemx
取决于t2
中的行数
t2
表格如下:
+----------+----------------+
| ID | title |
+----------+----------------+
| 1 | extra1 |
| 2 | extra2 |
| x | x |
+---------------------------+
首先,当我insert
向t2
发送新数据时,我的脚本会t1
添加item.$x
。 $x
是t2
的ID。但是当我query
数据和我的编码现在如下所示时,我遇到了问题:
$mapslist = DB::fetch_all("SELECT * FROM ".DB::table('t1')." ORDER BY id ASC");
foreach($mapslist as $mn => $ml){
$mapslista[] = $ml;
}
我的输出编码用html:
<!--{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
,那么t1
仅显示item1
数据?如果我的t2
得到10 rows data
,那么t1
只显示item1
到item10
数据?
以下是我的预期:(如果t2
只有1行,我的t1.item
也应该有item1
)
1 , Amap , 1000
2 , Bmap , 2000
3 , Cmap , 3000
如果t2
有2行,那么我的t1.item
也应该有item1
item2
列。所以最终的输出应该是
1, Amap , 1000 , 2000
2, Bmap , 2000 , 3000
3, Cmap , 3000 , 4000
谢谢。
答案 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;
}