Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Petla gdzie kolejne wywolania strony to kolejny krok
Forum PHP.pl > Forum > PHP
Agape
Witam. Jest taka sytuacja ze mam petle o dynamícznej ilosci krokow i elementow. Wyglada to tak ze pobieram roznej ilosci zbior zmiennych i sprawdzam jakim wartoscia odpowiada w drugim zbiorze. Czasem bedzie to jedna wartosc a czasem pare. Jesli bedzie pare to dla kazdego elementu petla musi wykorzystac wszystkie jej wartosci, tak zeby wyczerpac wszystkie kombimacje. Tu wlasnie rodzi sie pytanie, jak zapisywac kolejne kroki skoro tak jak pisalem juz beda one wykomywane dopiero przy kolejnych przeladowaniach strony
ixpack
Nie wiem sesja?

Fajnie jakbyś podał kod, bo nie chciało mi się dokładnie czytać... Też robię często ten "błąd" i zapominam, że tu "nie ma" humanistów wink.gif

Edit: ... Którym chce się interpretować powieści forumowiczów.

Edit by thek: a z mojego doświadczenia wiem, że opowieści są często ignorowane po kilku zdaniach lub widząc konkretny nick (na przykład mój przy poście na kilka akapitów biggrin.gif )
Agape
ok więc tak
Mam tablice asocjacyjną o nieokreślonej na sztywno liczbie elementów i sprawdzam jakie dla tych elementów są wartości w drugiej tablicy
Kod
function pobierz_wartosc($nazwa, $tablica){    
    foreach ($tablica['values'] as $key=>$value){
        foreach ($value as $f_key=>$f_val){
            if ($nazwa==trim($f_val)){
                $return['typ'] = $tablica['name'][$key];
                $return['value'] = $tablica['values'][$key][$f_key];
                
                return $return;
            }
        }
    }
}


jak widać zwraca tylko pierwsze wystąpienie w drugiej tablicy. To, żeby zwracało wynik jako tablice z różnymi wartościami to nie problem oczywiście. Później zbiera wszystkie wartosci do jednej tablicy:
Kod
                 foreach ($fi as $f_key=>$f_val){
                         if(pobierz_wartosc($f_val['name'], $tablica)<>''){
                             $a =  pobierz_wartosc($f_val['name'], $tablica);
                             $znalezione['name'][] = $f_val['name'];
                             $znalezione['typ'][] = $a['typ'];
                             $znalezione['value'][] = $form_input[$f_key]['value'];
                         }
                         else{
                             $nieznalezione[] = $f_val['name'];
                         }
                 }

nastepnie tablice rozbijam na parametry GET do wywołania funkcji. Wszystko jest super ale nie wiem jak rozplanować to, żeby do bazy danych zapisywał się krok na jakim jestem. Tak, żeby wywołując skrypt np. jutro wywołał mi funkcje z kolejnymi parametrami w GET.

Wszystko sobie potrafie zrobic jednak nie mam pomysłu jak zachować w bazie danych na którym kroku jest i co ma podstawić jako następną wartość.
matino
Nie wiem czy o to chodzi, ale zmienne GET dostaniesz za pomocą
  1. echo $_SERVER['QUERY_STRING'];
ixpack
A kombinowałeś może z array_walk?
Agape
hm, ale to wlasnie o to chodzi zeby zrobic array_walk ale w inny sposob. Przypuśćmy że mamy 2 elementy które są tablicą z 2 wartościami i jeden z jedną
tak więc robimy 4 kroki zeby wyslac dane get
I
pierwszy=1&drugi=1&trzeci=stala
II
pierwszy=1&drugi=2&trzeci=stala
III
pierwszy=2&drugi=1&trzeci=stala
IV
pierwszy=2&drugi=2&trzeci=stala

z tym że chce zapisywać postęp w przechodzeniu przez kolejne kroki pętli która w powyższym przykładzie jest wykonywana 4 razy. Uruchomie zadanie w CRON co pół godziny i pierwszy krok zrobi teraz, drugi za pół godziny, trzeci za godzine a czwarty za połtorej godziny. Problem w tym jak zapisać stan w którym jest pętla żeby można było go odtworzyć i przejść za pół godziny do drugiej kombinacji
ixpack
Tak po najprostszej linii oporu:
GET'y zapisujesz np. do pliku txt lub do bazy...
Skrypt się wykonuje, a gdy kończy to wstawia jakiś terminator do txt lub ustawia odpowiedni znacznik dla GET'a w bazie
Inny sktypt sprawdza czy GET'y skończone, jak nie to pobiera z bazy listę od danego znacznika/terminatora i jedzie dalej
Agape
Hm a ja kombinowalem jakimis super sposobami z kosmosu smile.gif Najprostrze rozwiazania sa najlepsze. Dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.