Php SQL联接未正确显示
我试图找到一个解决方案,我试图使用相同的id从不同的表中获取数据。这是我的代码Php SQL联接未正确显示,php,mysql,sql,database,join,Php,Mysql,Sql,Database,Join,我试图找到一个解决方案,我试图使用相同的id从不同的表中获取数据。这是我的代码 "SELECT * FROM menucat LEFT JOIN vmenutab ON menucat.cat_id = vmenutab.menu_id"; 我需要创建节,然后用一些内容填充它们,表menucat是包含节的父表,vmenutab是包含内容的子表。 但我有个问题,它没有正确显示。应该是这样的: 第一节 链接1 链接2 但它的表现是这样的: 第一节 链接1 第一节 链接2 我一直在使用搜索、分组方
"SELECT * FROM menucat LEFT JOIN vmenutab ON menucat.cat_id = vmenutab.menu_id";
我需要创建节,然后用一些内容填充它们,表menucat是包含节的父表,vmenutab是包含内容的子表。
但我有个问题,它没有正确显示。应该是这样的:
第一节
链接1
链接2
但它的表现是这样的:
第一节
链接1
第一节
链接2
我一直在使用搜索、分组方式和DISTINCT,但都不起作用
表:
美努卡特:
猫id菜单猫est菜单猫ru菜单猫en
vmenutab:
id唯一链接id菜单\u id到相关节菜单\u名称\u est菜单\u名称\u ru菜单\u名称\u en
menu_cat_xxx和menu_name_xxx是不同的语言数据
PHP代码
<?php
$target = "SELECT * FROM menucat LEFT JOIN vmenutab ON menucat.cat_id = vmenutab.menu_id";
$mq = mysql_query($target);
while ($row = mysql_fetch_array($mq)) {
$menu_cat_est = $row['menu_cat_est'];
$menu_cat_ru = $row['menu_cat_ru'];
$menu_cat_en = $row['menu_cat_en'];
$menu_name_est = $row['menu_name_est'];
$menu_name_ru = $row['menu_name_ru'];
$menu_name_en = $row['menu_name_en'];
$cat_id = $row['cat_id'];
$id = $row['id'];
echo '<tr>
<td>' . $menu_cat_est . ''.$menu_name_est.'</td>
<td>' . $menu_cat_ru . ''.$menu_name_ru.'</td>
<td>' . $menu_cat_en . ''.$menu_name_en.'</td>
<td scope="col"><center><a href="content.php?veditcat=' . $cat_id . '"><img src="style/stylesheet/images/edit.png"></a></center></td>
<td scope="col"><center><a href="content.php?vdelcat=' . $cat_id . '"><img src="style/stylesheet/images/delete.png"></a></center></td>
<td scope="col"><center><a href="content.php?vadd=' . $cat_id . '">Добавить</a></center></td>
</tr>';
}
?>
对不起我的英语。致以最良好的祝愿
编辑:添加了整个PHP代码。
编辑2:添加表行。示例,因为我不知道您的数据库数据。还可以按cat id对数据库进行排序 "$菜单\u目录\u xxx$菜单名称有点混乱
$target = "SELECT * FROM menucat LEFT JOIN vmenutab ON menucat.cat_id = vmenutab.menu_id" order by menucat.cat_id;
$mq = mysql_query($target);
while ($row = mysql_fetch_array($mq)) {
$menu_cat_est = $row['menu_cat_est'];
$menu_cat_ru = $row['menu_cat_ru'];
$menu_cat_en = $row['menu_cat_en'];
$menu_name_est = $row['menu_name_est'];
$menu_name_ru = $row['menu_name_ru'];
$menu_name_en = $row['menu_name_en'];
$cat_id = $row['cat_id'];
$id = $row['id'];
if(!$nocat[$cat_id]){ $nocat[$cat_id] = $cat_id; $section='<tr><td colspan="6"> section' . $cat_id . '</td></tr>
';}else{$section='';} // customise as i need sleep
echo $section.
'<tr>
<td>' . $menu_cat_est . ''.$menu_name_est.'</td>
<td>' . $menu_cat_ru . ''.$menu_name_ru.'</td>
<td>' . $menu_cat_en . ''.$menu_name_en.'</td>
<td scope="col"><center><a href="content.php?veditcat=' . $cat_id . '"><img src="style/stylesheet/images/edit.png"></a></center></td>
<td scope="col"><center><a href="content.php?vdelcat=' . $cat_id . '"><img src="style/stylesheet/images/delete.png"></a></center></td>
<td scope="col"><center><a href="content.php?vadd=' . $cat_id . '">Добавить</a></center></td>
",
}关于内部连接呢?您可以在返回行的循环位置发布php代码吗?在php中,您使用完全连接而不是左连接如果我用完全连接替换左连接,它会显示一个错误:mysql\u fetch\u array需要参数,然后我发布代码what is'$菜单\u目录\u xxx$菜单名称有点混乱。$menu\u cat\u xxx有时是空的吗