SQL Join未正确显示

时间:2013-06-15 21:11:37

标签: php mysql sql database join

我正在尝试找到解决方案,我正在尝试使用相同的ID从不同的表中获取数据。这是我的代码

 "SELECT * FROM menucat LEFT JOIN vmenutab ON menucat.cat_id = vmenutab.menu_id";

我需要创建部分,稍后用一些内容填充它们,表menucat是带有部分的父表,vmenutab是带有内容的子表。 但我有一个问题,它没有正确显示。它应该是这样的:

SECTION1

  • Link1
  • 链路2

但它显示如下:

SECTION1

  • 链接1

SECTION1

  • 链路2

我一直在使用搜索,GROUP BY和DISTINCT没有用。

表:

menucat: cat_id menu_cat_est menu_cat_ru menu_cat_en

vmenutab: id(唯一链接ID)menu_id(id到相关部分)menu_name_est menu_name_ru menu_name_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:添加了表格行。

1 个答案:

答案 0 :(得分:0)

一个例子,因为我不知道您的数据库数据。还按cat id

排序db

' . $menu_cat_xxx . ''.$menu_name_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>

';

}