我从两个表中进行了SQL查询.一切都运行良好,但问题是这两个表有相同的字段名称,在我不知道如何正确显示它们之后,如何判断$ data ['aaa']来自表1和相同的$ data ['aaa ''来自表2
这是我的SQL查询:
$query_str = "SELECT
cm.id,
cm.global_category_id,
cm.num,
cm.menu_lv,
cm.menu_ru,
cm.menu_en,
u.id,
u.menu_lv,
u.menu_ru,
u.menu_en
FROM products_category cm, products_global_category u
WHERE cm.global_category_id = u.id
";
Run Code Online (Sandbox Code Playgroud)
并显示数据
<? foreach ($sub_category_list as $line) : ?>
<tr>
<td><?=$line['menu_lv']?></td> <---- here I want to display data from products_global_category u
<td><?=$line['sub_menu_lv']?></td> <---- products_category cm
<td><?=$line['sub_menu_ru']?></td> <---- products_category cm
<td><?=$line['sub_menu_en']?></td> <---- products_category cm
</tr>
<? endforeach; ?>
Run Code Online (Sandbox Code Playgroud)
作为解决方案,您可以更改SQL查询以为具有相同名称的字段提供别名.
例如:
SELECT somefield AS othername FROM table.
Run Code Online (Sandbox Code Playgroud)
在这种情况下,该somefield字段将通过别名提供othername.
在你的情况下:
$query_str = "SELECT
cm.id AS cm_id,
cm.global_category_id,
cm.num,
cm.menu_lv AS cm_menulv,
cm.menu_ru AS cm_menuru,
cm.menu_en AS cm.menuen,
u.id as u_id,
u.menu_lv AS u_menulv,
u.menu_ru AS u_menuru,
u.menu_en AS u_menuen
FROM products_category cm, products_global_category u
WHERE cm.global_category_id = u.id
";
Run Code Online (Sandbox Code Playgroud)
然后在你的PHP中:
$line['u_menulv'] //Access field menu_lv from products_global_category table
$line['cm_menulv'] //Access field menu_lv from products_category table
Run Code Online (Sandbox Code Playgroud)
编辑:在mysql_fetch_array 文档页面中:
如果结果的两列或更多列具有相同的字段名称,则最后一列将优先.要访问同名的其他列,必须使用列的数字索引或为列创建别名.对于别名列,您无法使用原始列名访问内容.
换句话说,要么创建如上所示的别名,要么通过数组的数字索引访问字段.
| 归档时间: |
|
| 查看次数: |
2265 次 |
| 最近记录: |