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
Форумы портала PHP.SU » » Вопросы новичков » Награды на php

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

1. lodka981 - 06 Декабря, 2013 - 19:05:22 - перейти к сообщению
Добрый вечер. Я хочу реализовать что-то типо наград или званий в своём чате , например у пользователя больше 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 выводил ну и так далее?!
2. LIME - 06 Декабря, 2013 - 19:07:40 - перейти к сообщению
elseif
(Добавление)
switch
3. lodka981 - 06 Декабря, 2013 - 19:08:49 - перейти к сообщению
Пример покажи?
4. esterio - 06 Декабря, 2013 - 19:10:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if($nagrada)
  2.     echo 'NAGRADA';

Радость Радость
5. lodka981 - 06 Декабря, 2013 - 19:11:03 - перейти к сообщению
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.  

А дальше?
6. LIME - 06 Декабря, 2013 - 19:16:10 - перейти к сообщению
lodka981 пример покажу если ты почитаешь чтото по приведенным мною словам
если прочитаешь и хотябы полчаса на это потратишь мне и не придется пример показывать
(Добавление)
lodka981 пишет:
А дальше?
а все
проблема решена быть должна
7. lodka981 - 06 Декабря, 2013 - 19:18:16 - перейти к сообщению
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
8. LIME - 06 Декабря, 2013 - 19:23:02 - перейти к сообщению
да
соедени
читать внимательно советы совсем не обязательно
просто соедени
скотчем соедени
9. esterio - 06 Декабря, 2013 - 19:27:57 - перейти к сообщению
lodka981 пишет:
Я не очень понял мне соединять switch с if? или не надо?

Либо так, либо так
10. lodka981 - 06 Декабря, 2013 - 19:35:40 - перейти к сообщению
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 число , но которое верно скрипту , а не все ?!
11. LIME - 06 Декабря, 2013 - 19:41:51 - перейти к сообщению
на 5 строке пропустил елсеиф
12. lodka981 - 06 Декабря, 2013 - 19:43:53 - перейти к сообщению
Походу разобрался с помощью 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. }
13. Master._pascal - 06 Декабря, 2013 - 19:54:53 - перейти к сообщению
Оцените мой код
результат
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. ?>
14. lodka981 - 06 Декабря, 2013 - 19:55:35 - перейти к сообщению
Хотя нет не пойму почему? не работает показывает старт после 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
Не пойму как устроен ваш код((
15. LIME - 06 Декабря, 2013 - 20:04:09 - перейти к сообщению
проблема в переменных $start
$r_10
$r_20
поищи как они формируются
хотя я уже устал от подобного говнокода
удаляюсь
(Добавление)
lodka981 пишет:
Не пойму как устроен ваш код((
а он никак не устроен
говнокодер похлеще тебя

 

Powered by ExBB FM 1.0 RC1