-3
$sql = mysql_query("SELECT number FROM domains WHERE domains_id=1");

$row = mysql_fetch_array($sql);

$domain = $row['number'];

if($domain = 0){
<li class="icon"><a href="">Rule 1</a></li>
<li class="icon"><a href="">Rule 2</a></li>
}

if($domain = 1){
<li class="icon"><a href="" class="yes">Rule 1</a></li>
<li class="icon"><a href="">Rule 2</a></li>                                              
}

if($domain = 2){
<li class="icon"><a href="">Rule 1</a></li>
<li class="icon"><a href="" class="yes">Rule 2</a></li>
}

上記のコードがありますが、動作していないようです。

結果が

  • 0 - 赤のルールはありません
  • 1 - ルール 1 は赤
  • 2 - ルール 2 は赤

これを機能させる方法を教えてください。

前もって感謝します

4

4 に答える 4

1

比較の代わりに割り当てを使用していますが、===可能な限り厳密な比較 ( )を使用する必要があります。

$sql = mysql_query("SELECT number FROM domains WHERE domains_id=1");

$row = mysql_fetch_array($sql);

$domain = (int)$row['number']; // cast the result

if($domain === 0){?>
<li class="icon"><a href="">Rule 1</a></li>
<li class="icon"><a href="">Rule 2</a></li>
<?php}

if($domain === 1){?>
<li class="icon"><a href="" class="yes">Rule 1</a></li>
<li class="icon"><a href="">Rule 2</a></li>
<?php}

if($domain === 2){?>
<li class="icon"><a href="">Rule 1</a></li>
<li class="icon"><a href="" class="yes">Rule 2</a></li>
<?php}

一般的に、私はあなたのコードで3つのことを変更しました:

  • ===代入 ( ) の代わりに比較 ( ) を使用し=
  • (int)$row['number']クリーンなデータの場合、データベースの結果を整数 ( ) にキャストし、
  • HTML を PHP コードの外に置き、

編集:他の人が以前に気づいた別の問題に気づきました。同じデータをチェックする 3 つの独立した条件があります。ifこれらの 3 つの条件ステートメントの代わりに、one end twoで構成される単一のステートメントを使用できますelseif

于 2013-01-04T17:46:21.060 に答える
1

=の代わりに==、あなたも DRY に違反しています。代わりにこれを試してください:

echo '<li class="icon"><a href=""'.($domain==1 ? ' class="yes"' : '').'>Rule 1</a></li>';
echo '<li class="icon"><a href=""'.($domain==2 ? ' class="yes"' : '').'>Rule 2</a></li>';
于 2013-01-04T17:46:21.013 に答える
1

試す

if($domain == 0){
<li class="icon"><a href="">Rule 1</a></li>
<li class="icon"><a href="">Rule 2</a></li>
}

if($domain == 1){
<li class="icon"><a href="" class="yes">Rule 1</a></li>
<li class="icon"><a href="">Rule 2</a></li>                                              
}

if($domain == 2){
<li class="icon"><a href="">Rule 1</a></li>
<li class="icon"><a href="" class="yes">Rule 2</a></li>
}

=ダブルが必要なときにシングルを使用しています==

于 2013-01-04T17:42:27.040 に答える
0

間違った比較演算子を使用しています。=比較ではなく代入を行います。を使用する必要があります==

また、HTTP を出力するために、PHP から切り替えることもありません。

これを試して:

<?php 
    $sql = mysql_query("SELECT number FROM domains WHERE domains_id=1");

    $row = mysql_fetch_array($sql);

    $domain = $row['number'];
?>
<li class="icon"><a href="" class="<?php echo ($domain == 1)?"yes":""; ?>">Rule 1</a></li>
<li class="icon"><a href="" class="<?php echo ($domain == 2)?"yes":""; ?>">Rule 2</a></li>
于 2013-01-04T17:47:22.337 に答える