php if语句用于显示某些html块

时间:2011-05-04 19:58:01

标签: php if-statement

我目前正在尝试检查我的db表以查看用户的级别是否等于或小于10,如果是,则显示整个html列表,如果不是且等于或小于5则仅显示其余部分列表。这是我开始的地方:

<?php

$levels = mysql_query("SELECT level FROM users");
  if ($levels <= 10) {

?>

html list

<?php 

if ($levels <= 5)

?>

html list

<?php

}

?>

我试图绕过它,我似乎无法得到它。

4 个答案:

答案 0 :(得分:3)

试试这个:

<?php if ($levels <= 5): ?>

html list

<?php elseif ($levels <= 10): ?>

html list

<?php endif; ?>

作为David Fells said,请确保首先获得结果:)

编辑:我认为我误解了你的问题。试试这个:

<?php if ($levels <= 10): /* If equal to or less than 10 */ ?>

    <?php if ($levels > 5): /* if greater than 5 */ ?>

    first part of html list

    <?php endif; ?>

second part of html list

<?php endif; ?>

我对此感到困惑:

  

如果用户的级别等于或小于10,如果是,则显示整个html列表, 如果不是 且等于或小于5仅显示列表的剩余部分

.. 0-5将小于或等于10。请原谅混合,GL!

答案 1 :(得分:1)

$result = mysql_query(sprintf("SELECT level FROM users WHERE user_id = %d", $current_user_id));
if (list($level) = mysql_fetch_array($result)) {
  if ($level <= 5) { 
    // whatever
  }
  elseif ($level <= 10) {
    // whatever
  }
  else {
    // whatever
  }
}

根本没有清除它吗?您需要提供当前用户的ID,然后您需要实际从$ result中检索值。 $ result是一个类型为resource的变量,你必须使用这样设计的函数来处理它。

答案 2 :(得分:0)

你需要在等级&lt; = 10之前询问等级&lt; = 5,因为等级&lt; = 10将始终找到等级<= 5。

答案 3 :(得分:0)

代码有很多错误 -

首先,

$levels = mysql_query("SELECT level FROM users");

返回一个包含所有用户级别的数组。您希望使用WHERE子句查询特定用户的级别。

接下来,当你想要区分&lt; = 5和5&amp; 10之间时,你需要使用其中一种方法

if($levels>5 && $levels <=10){
      `enter code here`
}elseif($levels<=5){
      `enter code here`
}

if($levels<=5){
      `enter code here`
}elseif($levels<=10){
      `enter code here`
}

在这种情况下,我更喜欢第二种,因为它涉及的比较少。

接下来,您看起来就像刚开始使用PHP一样。你没有关闭大括号,也没有使用else语句。