-3
$menu=$_GET[menu];
if (empty($menu))
    {
    $menu==1;
    }

$menusql= "select * from menu order by menu_id asc";
$menusorgu= mysql_query($menusql);
while (@$menusonuc = mysql_fetch_array($menusorgu)) 
{
    if ($menusonuc[menu_id]= $menu)
    {
    echo "<li class=\"active first\"><a href=\"portal.php?menu=\"$menusonuc[menu_id]\"\">$menusonuc[menu]</a></li>";
    }
    else
    {
    echo "<li><a href=\"portal.php?menu=\"$menusonuc[menu_id]\"\">$menusonuc[menu]</a></li>";
    }
}

データベースにはmenu_idとメニューの「アクティブファースト」クラスがあり、このコードはすべてのメニューを書き込みますが、「アクティブファースト」クラスを表示できません誰かが私を助けてくれますか?

4

4 に答える 4

1

==if 条件でなければなりません

if ($menusonuc["menu_id"] == $menu){
..
}
于 2012-12-30T11:28:18.700 に答える
1

基本的な構文トラップ、使用=すべき場所を使用しています==

if ($menusonuc[menu_id] == $menu)
于 2012-12-30T11:28:32.937 に答える
1

==代入演算子の代わりに=等値演算子を使用する必要があります$menusonuc[menu_id]= $menu

あなたのコードには他にも問題があります。

  1. 配列インデックスは引用符で囲む必要があります。そう$menusonuc[menu_id]あるべきです$menusonuc['menu_id']
  2. @単純な変数の前では使用しないでください。意味がありません。関数呼び出しまたは式の前で使用できます。@$arr[$index] 理にかなっています。
  3. 絶対に使わない@でください。このエラー制御演算子は非常に低速です。また、エラーを隠し、デバッグを困難にします。
于 2012-12-30T11:28:40.680 に答える
0

使用=すべき場所を使用==し、使用すべき==場所のみ=を使用しましたが、配列キーの名前を引用符で囲むのを忘れていました。あなたの代わりにこのコードを試してください(変更されています):

$menu = $_GET["menu"];
if (empty($menu)) {
    $menu = 1;
}

$menusql = "select * from menu order by menu_id asc";
$menusorgu = mysql_query($menusql);
while ($menusonuc = mysql_fetch_array($menusorgu)) {
    if ($menusonuc["menu_id"] == $menu) {
        echo "<li class='active first'><a href='portal.php?menu={$menusonuc["menu_id"]}'>{$menusonuc['menu']}</a></li>";
    } else {
        echo "<li><a href='portal.php?menu={$menusonuc["menu_id"]}'>{$menusonuc["menu"]}</a></li>";
    }
}        
于 2012-12-30T11:40:15.660 に答える