Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нужна помощь в решении простой задачи
Форумы портала PHP.SU » » Вопросы новичков » Нужна помощь в решении простой задачи

Страниц (1): [1]
 

1. Andruxa - 26 Марта, 2018 - 23:09:56 - перейти к сообщению
Всем привет!
Столкнулся с детским задание, на мой взгляд, но не получается его решить уже второй день.
Суть в следующем, в базе есть поле с количеством постов ( числовое значение)
мне нужно, в зависимости от того сколько постов вывести рейтинг пользователя, т.е заменить на картинку со звездочками.
Т.е если 10 постов - 1 звездочка;
от 10 до 20 постом - 2 звездочки и т.д.
Думал функцией перед выводом из базы заменить кол-во постов на картинку (текст)
PHP:
скопировать код в буфер обмена
  1. function raiting ($posts){
  2.     if ($post>0  or $post<10 ){
  3.         return "Звездочка 1";
  4.     }
  5.     elseif($post>10 or $post<30){
  6.         return "Звездочка 2";
  7.         }      
  8.     }


Но что то должного результата не получается достичь, подскажите, что я делаю не так ?
2. Строитель - 27 Марта, 2018 - 01:51:49 - перейти к сообщению
Andruxa пишет:
Т.е если 10 постов - 1 звездочка;
от 10 до 20 постом - 2 звездочки и т.д.
Спойлер (Отобразить)
3. Andruxa - 27 Марта, 2018 - 19:52:55 - перейти к сообщению
Строитель Спасибо! Т.е Ваш вариант, повторяет знак "*" кол-во раз, которое подсчитывается в зависимости от кол-ва постов. Вроде все верно понимаю !?

Но Вопрос еще в том, почему условие записанное мной не работает ?
PHP:
скопировать код в буфер обмена
  1.     function raiting ($posts){
  2.         if ($post>0  or $post<10 ){
  3.             return "Звездочка 1";
  4.         }
  5.         elseif($post>10 or $post<30){
  6.             return "Звездочка 2";
  7.             }      
  8.         }

Вроде по логике все верно, если кол-во постов больше 0 и меньше 10, выводим 1 звездочку, а если больше 10 и меньше 30, выводим 2 звездочки. Почему данное условие не срабатывает !?

А есть ли еще варианты решения моего вопроса ?
4. Строитель - 27 Марта, 2018 - 20:00:03 - перейти к сообщению
Andruxa пишет:
Ваш вариант, повторяет знак "*" кол-во раз, которое подсчитывается в зависимости от кол-ва постов. Вроде все верно понимаю !?
Именно так.
Andruxa пишет:
Вопрос еще в том, почему условие записанное мной не работает ?
Потому что вы не внимательны - в сигнатуре переменная $posts, а в теле функции $post
5. Andruxa - 27 Марта, 2018 - 21:20:18 - перейти к сообщению
Строитель пишет:
Потому что вы не внимательны - в сигнатуре переменная $posts, а в теле функции $post

Да, Вы правы, не доглядел, но после исправления, все рано не работает, выдает для всех постов один и тот же результат "Звездочка 1".
Вообще такое условие работоспособно!?
PHP:
скопировать код в буфер обмена
  1.  if ($posts>0  or $posts<10 ){
  2.             return "Звездочка 1";
  3.         }
6. Строитель - 27 Марта, 2018 - 21:37:37 - перейти к сообщению
Andruxa пишет:
Вообще такое условие работоспособно!?
Замените ИЛИ на И - будет работоспособно.
7. Andruxa - 27 Марта, 2018 - 22:16:51 - перейти к сообщению
Все заработало, спасибо!

 

Powered by ExBB FM 1.0 RC1