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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Награды на php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): [1] 2 3 4 »   

> Описание: Как сделать что-то типо наград в своем чате?
lodka981
Отправлено: 06 Декабря, 2013 - 19:05:22
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Добрый вечер. Я хочу реализовать что-то типо наград или званий в своём чате , например у пользователя больше 10 сообщений тогда звание 10 или у пользователя от 0-10 , тогда звание 0 ну и так до 100. Я сделал так:

PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("SELECT COUNT(text) FROM comments WHERE name='$login'");
  2.   $row = mysql_fetch_row($res);
  3.   $total = $row[0]; // всего записей
  4.  
  5.  
  6. if($total == '0' or $total > 1)
  7.   {echo "0-10";}
  8.   //10
  9.   if($total > 10)
  10. {echo "10";}
  11.   //20
  12.   if($total > 20)
  13. {echo "20";}
  14.  


и тд... Но вот в чем проблемка . Он считает все работает , но если звание 20 , то он выводит 0 , 10 , 20 ну и тд.
Как сделать так , чтобы если 20 званий , то он тока 20 выводил ну и так далее?!
 
 Top
LIME
Отправлено: 06 Декабря, 2013 - 19:07:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




elseif
(Добавление)
switch
 
 Top
lodka981
Отправлено: 06 Декабря, 2013 - 19:08:49
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Пример покажи?
 
 Top
esterio
Отправлено: 06 Декабря, 2013 - 19:10:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. if($nagrada)
  2.     echo 'NAGRADA';

Радость Радость
 
 Top
lodka981
Отправлено: 06 Декабря, 2013 - 19:11:03
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. if($total > 1)
  3.   {echo ("<div class='ranks'>$start</div>");}
  4.    elseif ($total == 10) {echo"<div class='ranks'>$start</div>";}
  5.  
  6.  
  7.  

А дальше?

(Отредактировано автором: 06 Декабря, 2013 - 19:16:57)

 
 Top
LIME
Отправлено: 06 Декабря, 2013 - 19:16:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




lodka981 пример покажу если ты почитаешь чтото по приведенным мною словам
если прочитаешь и хотябы полчаса на это потратишь мне и не придется пример показывать
(Добавление)
lodka981 пишет:
А дальше?
а все
проблема решена быть должна
 
 Top
lodka981
Отправлено: 06 Декабря, 2013 - 19:18:16
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


LIME
Я не очень понял мне соединять switch с if? или не надо?

Я пробовал вот так

PHP:
скопировать код в буфер обмена
  1. switch ($total) {
  2. case 0 or $total < 10:
  3. echo "<div class='ranks'>$start</div>";
  4. break;
  5.  
  6. case 10 or $total > 10:
  7. echo "<div class='ranks'>$r_10</div>";
  8. break;}
  9.  
И тд..
НО не поднимается больше 10

(Отредактировано автором: 06 Декабря, 2013 - 19:24:24)

 
 Top
LIME
Отправлено: 06 Декабря, 2013 - 19:23:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




да
соедени
читать внимательно советы совсем не обязательно
просто соедени
скотчем соедени
 
 Top
esterio
Отправлено: 06 Декабря, 2013 - 19:27:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




lodka981 пишет:
Я не очень понял мне соединять switch с if? или не надо?

Либо так, либо так
 
 Top
lodka981
Отправлено: 06 Декабря, 2013 - 19:35:40
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1. if($total > 1)
  2.   {echo ("<div class='ranks'>$start</div>");}
  3.    elseif ($total == 10) {echo"<div class='ranks'>$start</div>";}
  4.   //10
  5.   if($total > 10)
  6. {echo "<div class='ranks'>$r_10</div>";}
  7. elseif ($total == 10) {echo"<div class='ranks'>$r_10</div>";}
  8.   //20
  9.   if($total > 20)
  10. {echo "<div class='ranks'>$r_20</div>";}
  11. elseif ($total == 20) {echo"<div class='ranks'>$r_20</div>";}


вот у меня сейчас 22 число показывает $total, а скрипт выдаёт 0,10,20 .
Или я задам вопрос так! Как остановить его? чтобы он показывал всегда 1 число , но которое верно скрипту , а не все ?!
 
 Top
LIME
Отправлено: 06 Декабря, 2013 - 19:41:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




на 5 строке пропустил елсеиф
 
 Top
lodka981
Отправлено: 06 Декабря, 2013 - 19:43:53
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Походу разобрался с помощью switch

PHP:
скопировать код в буфер обмена
  1. switch ($total) {
  2. case 0 or $total < 10 or $total == 10:
  3. echo "<div class='ranks'>$start</div>";
  4. break;
  5.  
  6. case 11 or $total < 20 or $total == 20:
  7. echo "<div class='ranks'>$r_20</div>";
  8. break;
  9.  
  10. case 21 or $total < 30 or $total == 30:
  11. echo "<div class='ranks'>$r_20</div>";
  12. break;
  13. }
 
 Top
Master._pascal
Отправлено: 06 Декабря, 2013 - 19:54:53
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




Оцените мой код
результат
5 результат 0-10;
15 результат 10-20
250 результат 250-260
1560 результат 1560-1570


PHP:
скопировать код в буфер обмена
  1. <?
  2. $var=3010;
  3.  
  4. $col=strlen($var);
  5. switch ($col) {
  6.         case 1:
  7.         $var2=substr($var, 0,1);
  8.        
  9.         echo '0-10';
  10.                 break;
  11.        
  12.         case 2:
  13.                         $var2=substr($var, 0,1);
  14.         $a=$var2+1;
  15.         $ot=$var2.'0-'.$a.'0';
  16.         echo $ot;
  17.  
  18.                 break;
  19.                 case 3:
  20.                 $var2=substr($var, 0,2);
  21.         $a=$var2+1;
  22.         $ot=$var2.'0-'.$a.'0';
  23.         echo $ot;
  24.         break;
  25.         case 4:
  26.                 $var2=substr($var, 0,3);
  27.         $a=$var2+1;
  28.         $ot=$var2.'0-'.$a.'0';
  29.         echo $ot;
  30.         break;
  31.  
  32. }
  33.  
  34. ?>
 
 Top
lodka981
Отправлено: 06 Декабря, 2013 - 19:55:35
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Хотя нет не пойму почему? не работает показывает старт после 10 с 11 показывает 10 , а после 20 , с 21 не показывает так и висит 10 (((((((((

PHP:
скопировать код в буфер обмена
  1. switch ($total) {
  2. case 0 or $total < 10 or $total == 10:
  3. echo "<div class='ranks'>$start</div>";
  4. break;
  5.  
  6. case 11 or $total < 20 or $total == 20:
  7. echo "<div class='ranks'>$r_10</div>";
  8. break;
  9.  
  10. case 21 or $total < 30 or $total == 30:
  11. echo "<div class='ranks'>$r_20</div>";
  12. break;
  13.  
  14. case 31 or $total < 40 or $total == 40:
  15. echo "<div class='ranks'>$r_30</div>";
  16. break;
  17.  
  18. case 41 or $total < 50 or $total == 50:
  19. echo "<div class='ranks'>$r_40</div>";
  20. break;
  21.  
  22. case 51 or $total < 60 or $total == 60:
  23. echo "<div class='ranks'>$r_50</div>";
  24. break;
  25.  
  26. case 61 or $total < 70 or $total == 70:
  27. echo "<div class='ranks'>$r_60</div>";
  28. break;
  29.  
  30. case 71 or $total < 80 or $total == 80:
  31. echo "<div class='ranks'>$r_70</div>";
  32. break;
  33.  
  34. case 81 or $total < 80 or $total == 80:
  35. echo "<div class='ranks'>$r_80</div>";
  36. break;
  37.  
  38. case 91 or $total < 90 or $total == 90:
  39. echo "<div class='ranks'>$r_90</div>";
  40. break;
  41.  
  42. case 101 or $total < 100 or $total == 100:
  43. echo "<div class='ranks'>$r_100</div>";
  44. break;
  45. }



Что не так???!
(Добавление)
Master._pascal
Не пойму как устроен ваш код((
 
 Top
LIME
Отправлено: 06 Декабря, 2013 - 20:04:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




проблема в переменных $start
$r_10
$r_20
поищи как они формируются
хотя я уже устал от подобного говнокода
удаляюсь
(Добавление)
lodka981 пишет:
Не пойму как устроен ваш код((
а он никак не устроен
говнокодер похлеще тебя

(Отредактировано автором: 06 Декабря, 2013 - 20:05:53)

 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB