[php] Wykonywanie zapytan w petli

0

Mam do zrobienia taka rzecz:

  1. w bazie danych sa wpisy ktore maja status = 1 lub status = 2
  2. Tych wpisow moze byc kolo 30 do 50 (srednio dziennie)
  3. Potrzebuje sprawdzic stan wpisow i zmienic im status z 1 na 2
  4. Wybieram zapytanie (SELECT id FROM wpisy WHERE status = 1 )
  5. Dla kazdego z wybranych wpisow musze sprawdzic czy moge juz zmienic status z 1 na 2
  6. jesli moge zmieniam na 2 i przechodze do kolejnego wiersza z zapytania w pnkt. 4.
  7. Koncze zmieniac statusy kiedy juz przejde wszystkie zapytania

To jest standardowa skryptowa procedura. Te procedure chce wykonywac po uplywie czasu powiedzmy co 30 sekund lub dodatkowo po pownych zdarzeniach. Calosc zapisze w odzielnym pliku np :check_stats.php i w cronie wpisze info by wykonywal sie dany skrypt.

Pytanie moje jest takie co sie stanie jesli odczytam 3 wpisy i zmienie status a np kiedy bede chcial odczytac czwarty wpis to wyskoczy mi TIMEOUT ? czy wtedy przerwie sie dzialanie skryptu czy przejdzie on do odczytania 5 wartosci i sprawedzenia jej statusu, a poprzednia czwarta wartosc zostanie sprawdzona za kolejne 30 sekund ?

0

daj w cronie takie zapytanie

$zmien = mysql_query("UPDATE tabela SET status='2' WHERE status = '1'");

i nie musisz mieć pętli

0

Nie moge. bo zeby zmienic status musze zapytac drugie podzapytanie czy moge. Czyli tak:

  1. wybierz wszystkie dane ze statusem = 1
  2. DLa kazdego wyniku zapytaj czy mozesz juz zmienic ststu (czyli zapytanie wysylane i czekam na odpowiedz)
  3. Jesli dostane pozytywna odpowiedz to zmieniam jesli nie przechodze dalej

i teraz punkt 2 moze sie stac ze dlugo nie odpowie. to co wtedy bedzie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1