0

こんにちは 私はほんの少しですが助けます。

私がやろうとしているのは、2 つの異なる mysql テーブルからデータを取得して、サブメニューを持つメニューを作成することです。

私が抱えている問題は、現在のページによっては、サブメニューに「サブカテゴリ」データベースからのすべての結果が表示されないことです

表 1: カテゴリ「ID、名前」

表 2: サブカテゴリ「ID、名前、Cparent、ファイル名 (サブカテゴリの画像)」

次のコードがあります。

<ul>
<?php 
  $catmenu_sql = 'select category.id AS catid, category.name AS catname, scategory.cparent AS    scparent, scategory.name AS scname
from category
left join scategory on category.id = scategory.cparent
group by category.name'; // Select data from database
      $result = mysql_query($catmenu_sql); 

while($rows = mysql_fetch_array($result)) { ?>

<!-- Begin Category list -->
<li class="menu">
    <a href="category.php?id=<?php echo $rows['catid']; ?>" id="<?php echo $rows['catid']; ?>" class="menu"><?php echo($rows['catname']); ?></a>
</li>
<!-- End Category List -->   

<?php 
    if (isset($_GET['id']) && is_numeric($_GET['id'])) // get the 'id' variable from the URL and match it with scategory parent in database
    $id = $_GET['id'];
    $sid = $rows['scparent'];
    if ( $id == $sid ) {
?>

<!-- Begin Sub Category List -->    
<ul>
<li class="menu"><a href="scategory.php?id= <?php echo $rows['catid']; ?>" id=" <?php echo $rows['catid'];?>"class="smenu"><?php echo $rows['scname']; ?></a>
    </li>
</ul>
<!-- End Sub category List -->
<?php }} ?>
</ul>'

どんな助けでも大歓迎です。ありがとうございました

4

2 に答える 2

0

あなたの問題を正しく理解していれば、この行:

if ( $id == $sid ) {

$id次のように初期化されている場合、現在のページに応じてサブカテゴリをフィルタリングします。

$id = $_GET['id'];

idこれは、おそらく次のように、URL に渡されるという名前のパラメーターの値です。

http://www.site.com/script.php?id=1

そのため、カテゴリのサブセットのみが表示されます。すべてを表示するには、id パラメータを URL に渡す必要はありません。

于 2013-05-27T19:21:59.230 に答える
0

コードをこれに置き換えてみてください

<?php 

$catmenu_sql = 'select category.id AS catid, category.name AS catname, scategory.cparent AS scparent, scategory.name AS scname
               from category
               left join scategory on category.id = scategory.cparent
               group by category.name'; // Select data from database

$result = mysql_query($catmenu_sql); 


$sHTML="<ul>";

while($rows = mysql_fetch_assoc($result)) 
{ 

    $sHTML="<ul>"

    <!-- Begin Category list -->
    $sHTML .= '<li class="menu">' .
              '<a href="category.php?id=' . $rows['catid'] . ' id=' . $rows['catid'] . ' class="menu">' . $rows['catname'] .'</a>' .
              '</li>' ;
    <!-- End Category List -->  


    $subquery = "SELECT sec_name FROM tbl_user_sec WHERE `sec_group` = '" . mysql_real_escape_string($row_secs['sec_group'] . "'";
    $subresult = mysql_query($subquery);

    <!-- Begin Sub Category List -->  
    if (isset($_GET['id']) && is_numeric($_GET['id'])) // get the 'id' variable from the URL and match it with scategory parent in database
    $id = $_GET['id'];
    $sid = $rows['scparent'];
    if ( $id == $sid ) 
       {

        $sHTML .="<ul>";

        while($row = mysql_fetch_assoc($subresult) ) {        

              $sHTML .= '<li class="menu"><a href="scategory.php?id= ' . $rows['catid'] . ' id=' . $rows['catid'] . ' class="smenu">' . $rows['scname'] . '</a>' .
                        '</li>' ;
            }

        $sHTML .="</ul>";
        }
    <!-- End Sub category List --> 


 } 

$sHTML .= '</ul>'
echo $sHTML
?>
于 2013-05-28T01:59:57.483 に答える