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.SU

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


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

> Без описания
berserk
Отправлено: 05 Декабря, 2006 - 08:00:57
Post Id


Новичок


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


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




Привет, я новичек в пхп, не ругайте сильно.
У меня есть задача вывести рандомное число в опредленное время суток, ниже скрипт, но он не выводит результат... прошу помочь
Цитата:
<?php
$a0 = rand(18,21);
$a1 = rand(15,18);
$a2 = rand(12,15);
$a3 = rand(9,12);
$a4 = rand(9,11);
$a5 = rand(8,10);
$a6 = rand(8,10);
$a7 = rand(8,10);
$a8 = rand(12,15);
$a9 = rand(12,15);
$a10 = rand(15,18);
$a11 = rand(21,23);
$a12 = rand(27,29);
$a13 = rand(36,39);
$a14 = rand(45,48);
$a15 = rand(40,42);
$a16 = rand(41,43);
$a17 = rand(45,48);
$a18 = rand(49,52);
$a19 = rand(50,53);
$a20 = rand(50,53);
$a21 = rand(50,53);
$a22 = rand(55,58);
$a23 = rand(50,53);
$time = date("H.i");
//$r1 = rand(55,56);
//$g1 = rand(54,55);
//$rg1 = rand($r1,$g1);
//$randomizer = rand($rg,$rg1);




function &arraynah()
{
global $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,$a13,$a14,$a15,$a16,$a17,$a18,$a19,$a20,$a21,$a22,$a23,$time;

if
(mktime(0,0)<= $time && mktime(1,05)>$time)
return $res = $a0;
elseif
(mktime(1,05)<= $time && mktime(2,15)>$time)
return $res = $a1;
elseif
(mktime(2,15)<= $time && mktime(3,0)>$time)
return $res = $a2;
elseif
(mktime(3,0)<= $time && mktime(4,12)>$time)
return $res = $a3;
elseif
(mktime(4,12)<= $time && mktime(5,02)>$time)
return $res = $a4;
elseif
(mktime(5,02)<= $time && mktime(6,08)>$time)
return $res = $a5;
elseif
(mktime(6,08)<= $time &&mktime(7,07)>$time)
return $res = $a6;
elseif
(mktime(7,07)<= $time && mktime(8,13)>$time)
return $res = $a7;
elseif
(mktime(8,13)<= $time && mktime(9,01)>$time)
return $res = $a8;
elseif
(mktime(9,01)<= $time && mktime(10,02)>$time)
return $res = $a9;
elseif
(mktime(10,02)<= $time && mktime(11,11)>$time)
return $res = $a10;
elseif
(mktime(11,11)<= $time && mktime(12,25)>$time)
return $res = $a11;
elseif
(mktime(12,25)<= $time && mktime(13,05)>$time)
return $res = $a12;
elseif
(mktime(13,05)<= $time && mktime(14,08)>$time)
return $res = $a13;
elseif
(mktime(14,08)<= $time && mktime(15,0)>$time)
return $res = $a14;
elseif
(mktime(15,0)<= $time && mktime(16,05)>$time)
return $res = $a15;
elseif
(mktime(16,05)<= $time && mktime(17,0)>$time)
return $res = $a16;
elseif
(mktime(17,0)<= $time && mktime(18,06)>$time)
return $res = $a17;
elseif
(mktime(18,06)<= $time && mktime(19,09)>$time)
return $res = $a18;
elseif
(mktime(19,09)<= $time && mktime(20,0)>$time)
return $res = $a19;
elseif
(mktime(20,0)<= $time && mktime(21,05)>$time)
return $res = $a20;
elseif
(mktime(21,05)<= $time && mktime(22,0)>$time)
return $res = $a21;
elseif
(mktime(22,0)<= $time && mktime(23,01)>$time)
return $res = $a22;
elseif
(mktime(23,01)<= $time && mktime(23,59)>$time)
return $res = $a23;
}
$result =& arraynah();
echo "result $result <br>";
echo "Time $time";
?>



P.S. тэг code просто ужасен. имхо.
 
 Top
evgenijj
Отправлено: 05 Декабря, 2006 - 21:19:09
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $a0 = rand(18,21);
  4. $a1 = rand(15,18);
  5. $a2 = rand(12,15);
  6. $a3 = rand(9,12);
  7. $a4 = rand(9,11);
  8. $a5 = rand(8,10);
  9. $a6 = rand(8,10);
  10. $a7 = rand(8,10);
  11. $a8 = rand(12,15);
  12. $a9 = rand(12,15);
  13. $a10 = rand(15,18);
  14. $a11 = rand(21,23);
  15. $a12 = rand(27,29);
  16. $a13 = rand(36,39);
  17. $a14 = rand(45,48);
  18. $a15 = rand(40,42);
  19. $a16 = rand(41,43);
  20. $a17 = rand(45,48);
  21. $a18 = rand(49,52);
  22. $a19 = rand(50,53);
  23. $a20 = rand(50,53);
  24. $a21 = rand(50,53);
  25. $a22 = rand(55,58);
  26. $a23 = rand(50,53);
  27. $time = date("H.i");
  28.  
  29. echo "mktime(0,0)=".mktime(0,0)."<br/>";
  30. echo "date(\"H.i\")=".$time."<br/>";
  31.  
  32.  
  33. function arraynah()
  34. {
  35.         global $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,
  36. $a13,$a14,$a15,$a16,$a17,$a18,$a19,$a20,$a21,$a22,$a23,$time;
  37.        
  38.         if(mktime(0,0)<= $time && mktime(1,05)>$time)
  39.                 { echo "Выполнено условие 1<br/>"; return $res = $a0; }
  40.         elseif(mktime(1,05)<= $time && mktime(2,15)>$time)
  41.                 { echo "Выполнено условие 2<br/>"; return $res = $a1; }
  42.         elseif(mktime(2,15)<= $time && mktime(3,0)>$time)
  43.                 { echo "Выполнено условие 3<br/>"; return $res = $a2; }
  44.         elseif(mktime(3,0)<= $time && mktime(4,12)>$time)
  45.                 { echo "Выполнено условие 4<br/>"; return $res = $a3; }
  46.         elseif(mktime(4,12)<= $time && mktime(5,02)>$time)
  47.                 { echo "Выполнено условие 5<br/>"; return $res = $a4; }
  48.         elseif(mktime(5,02)<= $time && mktime(6,08)>$time)
  49.                 { echo "Выполнено условие 6<br/>"; return $res = $a5; }
  50.         elseif(mktime(6,08)<= $time &&mktime(7,07)>$time)
  51.                 { echo "Выполнено условие 7<br/>"; return $res = $a6; }
  52.         elseif(mktime(7,07)<= $time &&8mktime(8,13)>$time)
  53.                 { echo "Выполнено условие 9<br/>"; return $res = $a7; }
  54.         elseif(mktime(8,13)<= $time && mktime(9,01)>$time)
  55.                 { echo "Выполнено условие 10<br/>"; return $res = $a8; }
  56.         elseif(mktime(9,01)<= $time && mktime(10,02)>$time)
  57.                 { echo "Выполнено условие 11<br/>"; return $res = $a9; }
  58.         elseif(mktime(10,02)<= $time && mktime(11,11)>$time)
  59.                 { echo "Выполнено условие 12<br/>"; return $res = $a10; }
  60.         elseif(mktime(11,11)<= $time && mktime(12,25)>$time)
  61.                 { echo "Выполнено условие 13<br/>"; return $res = $a11; }
  62.         elseif(mktime(12,25)<= $time && mktime(13,05)>$time)
  63.                 { echo "Выполнено условие 14<br/>"; return $res = $a12; }
  64.         elseif(mktime(13,05)<= $time && mktime(14,08)>$time)
  65.                 { echo "Выполнено условие 15<br/>"; return $res = $a13; }
  66.         elseif(mktime(14,08)<= $time && mktime(15,0)>$time)
  67.                 { echo "Выполнено условие 16<br/>"; return $res = $a14; }
  68.         elseif(mktime(15,0)<= $time && mktime(16,05)>$time)
  69.                 { echo "Выполнено условие 17<br/>"; return $res = $a15; }
  70.         elseif(mktime(16,05)<= $time && mktime(17,0)>$time)
  71.                 { echo "Выполнено условие 18<br/>"; return $res = $a16; }
  72.         elseif(mktime(17,0)<= $time && mktime(18,06)>$time)
  73.                 { echo "Выполнено условие 19<br/>"; return $res = $a17; }
  74.         elseif(mktime(18,06)<= $time && mktime(19,09)>$time)
  75.                 { echo "Выполнено условие 20<br/>"; return $res = $a18; }
  76.         elseif(mktime(19,09)<= $time && mktime(20,0)>$time)
  77.                 { echo "Выполнено условие 21<br/>"; return $res = $a19; }
  78.         elseif(mktime(20,0)<= $time && mktime(21,05)>$time)
  79.                 { echo "Выполнено условие 22<br/>"; return $res = $a20; }
  80.         elseif(mktime(21,05)<= $time && mktime(22,0)>$time)
  81.                 { echo "Выполнено условие 23<br/>"; return $res = $a21; }
  82.         elseif(mktime(22,0)<= $time && mktime(23,01)>$time)
  83.                 { echo "Выполнено условие 24<br/>"; return $res = $a22; }
  84.         elseif(mktime(23,01)<= $time && mktime(23,59)>$time)
  85.                 { echo "Выполнено условие 25<br/>"; return $res = $a23; }
  86.                
  87.         echo "Ни одно из условий не выполнено<br/>";
  88. }
  89.  
  90. $result = arraynah();
  91. echo "result $result <br/>";
  92. echo "Time $time";
  93. ?>
  94.  

Результат работы:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. mktime(0,0)=1165266023
  3. date("H.i")=22.15
  4. Ни одно из условий не выполнено
  5. result
  6. Time 22.15
  7.  

Ты пытаешься сравнивать строку и целое число
CODE (text):
скопировать код в буфер обмена
  1.  
  2. string date ( string format [, int timestamp] )
  3. int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
  4.  
 
 Top
berserk
Отправлено: 05 Декабря, 2006 - 21:41:02
Post Id


Новичок


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


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




Мне помогли разобраться, я в действительности пытался вернуть не $a1,$a2 итд а $res=$a1 итд, что в свою очередь есть true..
А еще был косяк с форматом даты, ну вот вобщем то готовый скрипт:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a0 = rand(18,21);
  3. $a1 = rand(15,18);
  4. $a2 = rand(12,15);
  5. $a3 = rand(9,12);
  6. $a4 = rand(9,11);
  7. $a5 = rand(8,10);
  8. $a6 = rand(8,10);
  9. $a7 = rand(8,10);
  10. $a8 = rand(12,15);
  11. $a9 = rand(12,15);
  12. $a10 = rand(15,18);
  13. $a11 = rand(21,23);
  14. $a12 = rand(27,29);
  15. $a13 = rand(36,39);
  16. $a14 = rand(45,48);
  17. $a15 = rand(40,42);
  18. $a16 = rand(41,43);
  19. $a17 = rand(45,48);
  20. $a18 = rand(49,52);
  21. $a19 = rand(50,53);
  22. $a20 = rand(50,53);
  23. $a21 = rand(50,53);
  24. $a22 = rand(55,58);
  25. $a23 = rand(50,53);
  26. $time = strtotime('now');
  27. //$r1 = rand(55,56);
  28. //$g1 = rand(54,55);
  29. //$rg1 = rand($r1,$g1);
  30. //$randomizer = rand($rg,$rg1);
  31.  
  32.  
  33.  
  34.  
  35. function &arraynah()
  36. {
  37. global $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,$a13,$a14,$a15,$a16,$a17,$a18,$a19,$a20,$a21,$a22,$a23,$time;
  38.  
  39. if
  40.      (mktime(0,0)<= $time && mktime(1,05)>$time)
  41.       return $a0;
  42. elseif
  43.       (mktime(1,05)<= $time && mktime(2,15)>$time)
  44.       return $a1;
  45. elseif
  46.       (mktime(2.15)<= $time && mktime(3,0)>$time)
  47.       return $a2;
  48. elseif
  49.       (mktime(3,0)<= $time && mktime(4,12)>$time)
  50.       return $a3;
  51. elseif
  52.       (mktime(4,12)<= $time && mktime(5,02)>$time)
  53.       return $a4;
  54. elseif
  55.       (mktime(5,02)<= $time && mktime(6,08)>$time)
  56.       return $a5;
  57. elseif
  58.       (mktime(6,08)<= $time &&mktime(7,07)>$time)
  59.       return $a6;
  60. elseif
  61.       (mktime(7,07)<= $time && mktime(8,13)>$time)
  62.       return $a7;
  63. elseif
  64.       (mktime(8,13)<= $time && mktime(9,01)>$time)
  65.       return $a8;
  66. elseif
  67.       (mktime(9,01)<= $time && mktime(10,02)>$time)
  68.       return $a9;
  69. elseif
  70.       (mktime(10,02)<= $time && mktime(11,11)>$time)
  71.       return $a10;
  72. elseif
  73.       (mktime(11,11)<= $time && mktime(12,25)>$time)
  74.       return $a11;
  75. elseif
  76.       (mktime(12,25)<= $time && mktime(13,05)>$time)
  77.       return $a12;
  78. elseif
  79.       (mktime(13,05)<= $time && mktime(14,08)>$time)
  80.       return $a13;
  81. elseif
  82.       (mktime(14,08)<= $time && mktime(15,0)>$time)
  83.       return $a14;
  84. elseif
  85.       (mktime(15,0)<= $time && mktime(16,05)>$time)
  86.       return $a15;
  87. elseif
  88.       (mktime(16,05)<= $time && mktime(17,0)>$time)
  89.       return $a16;
  90. elseif
  91.       (mktime(17,0)<= $time && mktime(18,06)>$time)
  92.       return $a17;
  93. elseif
  94.       (mktime(18,06)<= $time && mktime(19,09)>$time)
  95.       return $a18;
  96. elseif
  97.       (mktime(19,09)<= $time && mktime(20,0)>$time)
  98.       return $a19;
  99. elseif
  100.       (mktime(20,0)<= $time && mktime(21,05)>$time)
  101.       return $a20;
  102. elseif
  103.       (mktime(21,05)<= $time && mktime(22,0)>$time)
  104.       return $a21;
  105. elseif
  106.       (mktime(22,0)<= $time && mktime(23,01)>$time)
  107.       return $a22;
  108. elseif
  109.       (mktime(23,01)<= $time && mktime(23,59)>$time)
  110.       return $a23;
  111. }
  112. $result =&arraynah();
  113. echo "result $result <br>";
  114. echo "Время $time";
  115. ?>


Но у меня еще вопрос, а можно сделать так чтобы рандом показывал какоет-то одно определеное число из данного массива случайных чисел пока 6 раз не обновишь страницу?
 
 Top
evgenijj
Отправлено: 05 Декабря, 2006 - 22:25:43
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




Цитата:
Мне помогли разобраться, я в действительности пытался вернуть не $a1,$a2 итд а $res=$a1 итд, что в свою очередь есть true..

Кто тебе сказал эту глупость?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. echo hello();
  4.  
  5. function hello()
  6. {
  7.         $v = "Hello, world!";
  8.         return $res = $v;
  9. }
  10. ?>
  11.  

Результат работы

Цитата:

А еще был косяк с форматом даты...

А вот с датой действительно проблема - я уже писал, что ты пытался сравнивать строку и число.
Цитата:

Но у меня еще вопрос, а можно сделать так чтобы рандом показывал какое-то одно определеное число ... пока 6 раз не обновишь страницу?

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. // Инициализация счетчика
  5. if ( !isset( $_SESSION["count"] )  )
  6. {
  7.         $_SESSION["count"] = 1;
  8.         $_SESSION["random"] = rand();
  9. }
  10.  
  11. if ( $_SESSION["count"] <= 6 )
  12. {      
  13.         echo "Случайное число ".$_SESSION["random"];
  14.         $_SESSION["count"] = $_SESSION["count"] + 1;
  15. }
  16. else
  17. {
  18.         // "Обнуляем" счетчик
  19.         $_SESSION["count"] = 1;
  20.         // Получаем новое случайное число
  21.         $_SESSION["random"] = rand();
  22.         echo "Случайное число ".$_SESSION["random"];
  23. }
  24.  
  25. ?>
  26.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB