PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
berserk
Отправлено: 05 Декабря, 2006 - 08:00:57
Новичок
Покинул форум
Сообщений всего: 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 просто ужасен. имхо.
evgenijj
Отправлено: 05 Декабря, 2006 - 21:19:09
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
echo "mktime(0,0)=" . mktime ( 0 , 0 ) . "<br/>" ; echo "date(\" H.i\" )=" . $time . "<br/>" ;
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 ;
{ echo "Выполнено условие 1<br/>" ; return $res = $a0 ; }
{ echo "Выполнено условие 2<br/>" ; return $res = $a1 ; }
{ echo "Выполнено условие 3<br/>" ; return $res = $a2 ; }
{ echo "Выполнено условие 4<br/>" ; return $res = $a3 ; }
{ echo "Выполнено условие 5<br/>" ; return $res = $a4 ; }
{ echo "Выполнено условие 6<br/>" ; return $res = $a5 ; }
elseif ( mktime ( 6
, 08
) <= $time && mktime
( 7
, 07
) > $time ) { echo "Выполнено условие 7<br/>" ; return $res = $a6 ; }
elseif ( mktime ( 7
, 07
) <= $time && 8mktime
( 8
, 13
) > $time ) { echo "Выполнено условие 9<br/>" ; return $res = $a7 ; }
{ echo "Выполнено условие 10<br/>" ; return $res = $a8 ; }
{ echo "Выполнено условие 11<br/>" ; return $res = $a9 ; }
{ echo "Выполнено условие 12<br/>" ; return $res = $a10 ; }
{ echo "Выполнено условие 13<br/>" ; return $res = $a11 ; }
{ echo "Выполнено условие 14<br/>" ; return $res = $a12 ; }
{ echo "Выполнено условие 15<br/>" ; return $res = $a13 ; }
{ echo "Выполнено условие 16<br/>" ; return $res = $a14 ; }
{ echo "Выполнено условие 17<br/>" ; return $res = $a15 ; }
{ echo "Выполнено условие 18<br/>" ; return $res = $a16 ; }
{ echo "Выполнено условие 19<br/>" ; return $res = $a17 ; }
{ echo "Выполнено условие 20<br/>" ; return $res = $a18 ; }
{ echo "Выполнено условие 21<br/>" ; return $res = $a19 ; }
{ echo "Выполнено условие 22<br/>" ; return $res = $a20 ; }
{ echo "Выполнено условие 23<br/>" ; return $res = $a21 ; }
{ echo "Выполнено условие 24<br/>" ; return $res = $a22 ; }
{ echo "Выполнено условие 25<br/>" ; return $res = $a23 ; }
echo "Ни одно из условий не выполнено<br/>" ;
}
$result = arraynah( ) ;
echo "result $result <br/>" ;
echo "Time $time " ;
?>
Результат работы:
Ты пытаешься сравнивать строку и целое число
CODE (
text ):
скопировать код в буфер обмена
string date ( string format [, int timestamp] )
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
berserk
Отправлено: 05 Декабря, 2006 - 21:41:02
Новичок
Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2006
Помог: 0 раз(а)
Мне помогли разобраться, я в действительности пытался вернуть не $a1,$a2 итд а $res=$a1 итд, что в свою очередь есть true..
А еще был косяк с форматом даты, ну вот вобщем то готовый скрипт:
PHP:
скопировать код в буфер обмена
<?PHP
//$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
return $a0 ;
elseif
return $a1 ;
elseif
return $a2 ;
elseif
return $a3 ;
elseif
return $a4 ;
elseif
return $a5 ;
elseif
( mktime ( 6
, 08
) <= $time && mktime
( 7
, 07
) > $time ) return $a6 ;
elseif
return $a7 ;
elseif
return $a8 ;
elseif
return $a9 ;
elseif
return $a10 ;
elseif
return $a11 ;
elseif
return $a12 ;
elseif
return $a13 ;
elseif
return $a14 ;
elseif
return $a15 ;
elseif
return $a16 ;
elseif
return $a17 ;
elseif
return $a18 ;
elseif
return $a19 ;
elseif
return $a20 ;
elseif
return $a21 ;
elseif
return $a22 ;
elseif
return $a23 ;
}
$result =& arraynah( ) ;
echo "result $result <br>" ;
echo "Время $time " ;
?>
Но у меня еще вопрос, а можно сделать так чтобы рандом показывал какоет-то одно определеное число из данного массива случайных чисел пока 6 раз не обновишь страницу?
evgenijj
Отправлено: 05 Декабря, 2006 - 22:25:43
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)
Цитата: Мне помогли разобраться, я в действительности пытался вернуть не $a1,$a2 итд а $res=$a1 итд, что в свою очередь есть true..
Кто тебе сказал эту глупость?
Результат работы
Цитата:
А еще был косяк с форматом даты...
А вот с датой действительно проблема - я уже писал, что ты пытался сравнивать строку и число.
Цитата:
Но у меня еще вопрос, а можно сделать так чтобы рандом показывал какое-то одно определеное число ... пока 6 раз не обновишь страницу?
PHP:
скопировать код в буфер обмена
<?PHP
// Инициализация счетчика
if ( ! isset ( $_SESSION [ "count" ] ) ) {
$_SESSION [ "count" ] = 1 ;
$_SESSION [ "random" ] = rand ( ) ; }
if ( $_SESSION [ "count" ] <= 6 )
{
echo "Случайное число " . $_SESSION [ "random" ] ;
$_SESSION [ "count" ] = $_SESSION [ "count" ] + 1 ;
}
else
{
// "Обнуляем" счетчик
$_SESSION [ "count" ] = 1 ;
// Получаем новое случайное число
$_SESSION [ "random" ] = rand ( ) ; echo "Случайное число " . $_SESSION [ "random" ] ;
}
?>
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB