|
|
|
| Здравствуйте!!!
Простите за такой глупый и простейший вопрос.
пока $переменная = 0 - отнять от текущей даты один день.
и так до тех пор пока $переменная не примет какое-то значение.
пишу:
<?
while ($переменная == 0)
{
$date=date("d/m/Y", time() - 24*60*60);
break; // вот здесь и проблема. Не знаю куда правильно записать break.
}
?>
|
Т.е. когда $переменная стала = 1, то break. А так получается, что отсчитывает дату только один раз и всё!!!
помогите, пожалуйста, вопрос елементарнейший :))))
спасибо!!!!!!! | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 15:03)
| | дык
while ($переменная == 0)
{
$date=date("d/m/Y", time() - 24*60*60);
if ($переменная == 1) break;
} | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 15:03)
| | под влиянием каких небесных сил $переменная изменит свое значение? | |
|
|
|
|
|
|
|
для: Trianon
(28.07.2007 в 15:20)
| | afms, Трианон имеет ввиду, что$переменная должна изменяться внутри цикла, иначе Ваш скрипт зависнет! :) | |
|
|
|
|
|
|
|
для: Trianon
(28.07.2007 в 15:20)
| | а так я уже пробовал: :(((
if ($переменная == 1) break;
|
только я писал так:
if (!$переменная == 0) break;
|
и так:
if ($переменная !== 0) break;
|
и чё-то не работало!!! просто эта переменная может принимать любое произвольное числовое значение, а не только 0 или 1......
Для трианона:
> под влиянием каких небесных сил $переменная изменит свое значение?
ну не знаю......:)))
просто, по идее, эта переменная может принимать любое числовое значение............ | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 15:36)
| | - | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 15:36)
| | > под влиянием каких небесных сил $переменная изменит свое значение?
ну не знаю......:)))
Тогда Вы не можете опираться на эту переменную. В том числе и применять её для управления выходом из цикла. Более того, вообще никак не може е применять её, раз Вы не знаете, что в ней сохранено в каждый момент времени. | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 15:03)
| | А так получается, что отсчитывает дату только один раз и всё!!!
А сколько надо? Один раз, два или пока дата не равна 2 января 2001 года?
пока $переменная = 0 - отнять от текущей даты один день.
То есть Вы хотите Вы вести несколько раз вчерашнюю дату?
и так до тех пор пока $переменная не примет какое-то значение.
С какой стати она примет другое значение? | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 15:03)
| | Во-первых зачем тут вообще break; если используеться while,
Во вторых у тебя судя по твоей логике вместо $переменная долежна как раз и быть $date
:) Т.е. что то вот такое :
<?
while ($date >= 0) // пока дата больше нуля
{
$date=date("d/m/Y", time() - 24*60*60); // отнимаем по суткам
}
?>
Но этот скрипт тоже не когда не остановиться, так как дата не когда к нулю не придет, следовательно, всё изночально не верно. Давай лучше объясни что ты в итоге хочешь этим циклом добиться?!
P.S.
У тебя дата все время и будет получаться одна и также потому что ты все время сутки отнимаешь от time(); и поэтому разницы не замечаешь, разница будет в секундах а не в сутках, помести значение ей возвращаемое в переменную от нее сутки и отнимай. | |
|
|
|
|
|
|
|
для: testdriver
(28.07.2007 в 17:08)
| | testdriver, Вы считаете, что дата в формате "d/m/Y" когда-то будет < 0? | |
|
|
|
|
|
|
|
для: Unkind
(28.07.2007 в 17:21)
| | Unkind нет конечно, собственно я выше это и написал:
>Но этот скрипт тоже не когда не остановиться, так как дата не когда к нулю не придет
Наверное вы не дочитали ...
P.S.
Я там просто пытался понять чего он хочет этим циклом :) а не написал готовое решение. | |
|
|
|
|
|
|
|
для: testdriver
(28.07.2007 в 17:08)
| | вот.......
да я уже честно и сам не знаю, получится ли что-нибудь из этого:
ладно, рассказываю как всё должно быть:
вообще этот скрипт должен получать курс драгоценных металлов по ЦБ, но проблема в том, что в выходные и по праздникам курсы не обновляются, поэтому необходимо использовать последний курс:
т.е. допустим затра воскресенье и скрипт выведет 0, а с помощью цикла я хотел "прокрутить дату назад", и таким образом получить последний (в данном случае, пятничный) курс......
вот........просто не хочется записывать в значения курсов в базу...... вот хотел попробовать таким способом........
а цикл должен быть примерно таким:
пока $курс_золота == 0
{
отнять от даты 1
а если переменная $курс_золота приняла какое-то значение, отличное от 0, то останавливаем цикл........
}
|
т.е. завтра берется текущая дата - воскресенье, значение переменной - 0, "отматываем" от даты до субботы - опять 0, ещё раз - 541,1700. всё!!! :)))))))) ура-ура!!!!!!!!!
ЗЫ извините, что так длинннннно, зато подробно.........
что думаете??? каким должен быть цикл???
Заранее ОГРОМНОЕ спасибо!!! :)))))))))) | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 18:06)
| | Не нужны тут никакие циклы.
<?php
if(date("w") == 0 || date("w") == 6) $ts = strtotime("last Friday");
else $ts = time();
$date = date("d/m/Y", $ts);
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(28.07.2007 в 19:46)
| | спасибо!!!! :))))
>Не нужны тут никакие циклы.
а как же новогодние праздники 10 дней??? ;)))))) | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 20:15)
| | Тем более. Еще больше лишних запросов. Вообще в таком случае лучше сохранять последний курс.
Если сегодня 0, то не надо сохранять этот 0, а выводить ранее сохраненный курс. Если не 0, то сохранять текущий курс и выводить. | |
|
|
|
|
|
|
|
для: Unkind
(28.07.2007 в 21:56)
| | думаете так будет лучше???
просто думал обойтись без базы........ ну ладно, наверное, действительно придется сделать по вашей схеме..... спасибо!!!! :)))))) | |
|
|
|
|
|
|
|
для: afms
(28.07.2007 в 22:08)
| | Тут и не нужна ни какая база, сохраняй последнее полученное значение в файл и если тебе возвращаеться нулевой результат, то выбирай значение из файла. | |
|
|
|
|
|
|
|
для: testdriver
(28.07.2007 в 22:22)
| | точно.........
вот только как это всё осуществить.......может есть небольшой примерчик......:)))))) | |
|
|
|