php if statment для показа определенных блоков html - PullRequest
1 голос
/ 04 мая 2011

В настоящее время я пытаюсь проверить свою таблицу БД, чтобы увидеть, равен ли уровень пользователя или меньше 10, если это так, то показать весь список HTML, если нет и равен или меньше 5, показать только оставшуюся частьсписок.Вот где я начал:

<?php

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

?>

html list

<?php 

if ($levels <= 5)

?>

html list

<?php

}

?>

Я пытаюсь обернуть голову вокруг этого, я просто не могу этого понять.

Ответы [ 4 ]

3 голосов
/ 05 мая 2011

Попробуйте это:

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

html list

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

html list

<?php endif; ?>

Как сказал Дэвид Феллс , сначала убедитесь, что вы получаете результат:)

РЕДАКТИРОВАТЬ : Я неправильно понял ваш вопрос, я думаю. Попробуйте вместо этого:

<?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 будет меньше или равно десяти. Пожалуйста, извините за путаницу, GL!

1 голос
/ 05 мая 2011
$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
  }
}

Это все проясняет?Вам нужно указать идентификатор текущего пользователя, а затем вам нужно получить значение из $ result.$ Result является переменной типа resource, и вы должны работать с ней с помощью функций, предназначенных для этого.

0 голосов
/ 05 мая 2011

В коде много ошибок-

Во-первых,

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

возвращает массив с уровнями всех пользователей. Вы хотите запросить уровень определенного пользователя, используя предложение WHERE.

Далее, когда вы хотите провести различие между <= 5 и между 5 и 10, вам нужно использовать любой из методов </p>

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. Вы не закрывали скобки и не использовали другие выражения.

0 голосов
/ 05 мая 2011

Вам нужно запросить уровни <= 5 перед уровнями <= 10, потому что уровни <= 10 всегда найдут уровни <= 5. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...