Цикл в php

12
A
На сайте с 09.01.2013
Offline
33
636

Подскажите, есть вот такой цикл

While(TRUE){

...
}

В нем выполняется действие по кругу, но перед действием выгрузил с БД массив ключевых слов, как сделать так, что когда в конце цикла я например резко скармливаю переменной какое нибудь значение, и цикл подхватывал из этого массива ключивое слово номер 2...и т.д. пока не закончится массив. А после того как массив стал пуст, цикл теребит этот же массив до появления новых ключевых слов...они записываются в БД не зависимо от чел. фактора.

Т.е. как только Select * from запрос дал данные с базы, опять их формируем в массив вида $item[n] и погнали по новой.

Буду безумно благодарен если натолкнете на мысль этой безумной идеи. :crazy:

Geers
На сайте с 12.04.2011
Offline
487
#1

Какой? этот цикл не открыт и не закрыт :)

A
На сайте с 09.01.2013
Offline
33
#2
Geers:
Какой? этот цикл не открыт и не закрыт :)

не понял :)

ну есть тупо цикл вот такой)

Geers
На сайте с 12.04.2011
Offline
487
#3
antyan:
не понял :)

ну есть тупо цикл вот такой)

Это просто цикл, начало исполнения php кода... как этот цикл может обратится к бд?

или я вас немного не понимаю и по кругу тем более)

A
На сайте с 09.01.2013
Offline
33
#4
Geers:
Это просто цикл, начало исполнения php кода... как этот цикл может обратится к бд?
или я вас немного не понимаю и по кругу тем более)

Ааа...


while(TRUE){
ЗАПРОС К БД, ПОЛУЧАЮ МАССИВ ключевых слов $item[n]
Беру первый $item[1] и работаю с ним, т.е. гоняю цикл до тех пор, пока например переменная $one=1,
после этого нужно уже брать как то $item[2] и т.д. опять до того как $one=1.
}
Geers
На сайте с 12.04.2011
Offline
487
#5
antyan:
Ааа...

while(TRUE){
ЗАПРОС К БД, ПОЛУЧАЮ МАССИВ ключевых слов $item[n]
Беру первый $item[1] и работаю с ним, т.е. гоняю цикл до тех пор, пока например переменная $one=1,
после этого нужно уже брать как то $item[2] и т.д. опять до того как $one=1.
}

Вы просто не в курсе как работает выборка Select это очень серьезное обращение к БД, запросы должны кешироваться ;)

---------- Добавлено 10.01.2014 в 03:13 ----------

antyan:
Ааа...

while(TRUE){
ЗАПРОС К БД, ПОЛУЧАЮ МАССИВ ключевых слов $item[n]
Беру первый $item[1] и работаю с ним, т.е. гоняю цикл до тех пор, пока например переменная $one=1,
после этого нужно уже брать как то $item[2] и т.д. опять до того как $one=1.
}

Лучше сайт покажи 🤣 подскажу.

A
На сайте с 09.01.2013
Offline
33
#6
Geers:
Вы просто не в курсе как работает выборка Select это очень серьезное обращение к БД, запросы должны кешироваться ;)

---------- Добавлено 10.01.2014 в 03:13 ----------


Лучше сайт покажи 🤣 подскажу.

Да это для своих целей, на локалхосте, так что пофиг не кеширование.

Так не сайт там, а пару строчек только:)


<?
while(TRUE)
{
$get=querySQL('SELECT * FROM keywords');
тупо код Curl в который отправляю сначало $get[N]['word'];
После чего мне сервер через curl отвечает ОК, я работаю все еще с тем же $get[N]['word'];... после того как сервер через Curl мне отвечает ERROR, мне надо сменить $get[N]['word']; на следующий...
а вот когда $get[N]['word']; закончились, т.е. запрос $GET уже не отдает мне ничего, надо тупо мучать $get до тех пор, пока не даст опять данные
}
?>
Geers
На сайте с 12.04.2011
Offline
487
#7
antyan:
Да это для своих целей, на локалхосте, так что пофиг не кеширование.

Так не сайт там, а пару строчек только:)


<?
while(TRUE)
{
$get=querySQL('SELECT * FROM keywords');
споле тупо код Curl в который отправляю сначало $get[N]['word'];
После чего мне сервер через curl отвечает ОК, я работаю все еще с тем же $get[N]['word'];... после того как сервер через Curl мне отвечает ERROR, мне надо сменить $get[N]['word']; на следующий...
а вот когда $get[N]['word']; закончились, т.е. запрос $GET уже не отдает мне ничего, надо тупо мучать $get до тех пор, пока не даст опять данные
}
?>

Это выполнитется только один раз, т.е. этот код.. о каком круговороте вы говорите?

A
На сайте с 09.01.2013
Offline
33
#8
Geers:
Это выполнитется только один раз, т.е. этот код.. о каком круговороте вы говорите?

А как заставить этот код выполняться без остановки по кругу? Разве While(true) не делает это?

siv1987
На сайте с 02.04.2009
Offline
427
#9
antyan:
А как заставить этот код выполняться без остановки по кругу? Разве While(true) не делает это?

А сколько "кругов" он будет делать пока там появятся новые данные? Вам наверное нужен крон. Или заслеепить процесс минут на пять, потом проверять есть ли данные по вашему адресу, если нет - снова sleep и тд.

Dreammaker
На сайте с 20.04.2006
Offline
569
#10

или крон, как выше написали, или http://daemon.io/

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий