Zadaję pytanie do bazy, jeżeli otrzymuję pusty wynik, to mam warunek, który zadaje kolejne pytanie, jeżeli to również okaże się zwracać pusty wynik, następuje update do bazy - oznaczając aktualnie pobierany rekord (dlatego, że pobieram z bazy 1, następnie przekazuje wynik do bazy 2, aby w niej pobrać następne dane). Natomiast jeżeli wszystkie warunki są pominięte wykonuje ostatniego else.
Wszystko jest ok, jednak, jeżeli na końcu pętli wyświetlę dane (echo $artnr . "</br>";), otrzymuję wyniki poza ostatnim else. Ten wyświetla napis, że pobrał za pierwszym razem, ale wyników już nie zwraca. Pewnie robię jakiś głupi błąd.
Będę wdzięczny za pomoc.
// Pobieranie rekordu z bazy 1 include('class/clear_symbol_class.php'); $stmt2 = "SELECT * FROM baza2(1, NULL, 1, NULL, '$symbol')"; $sth2 = ibase_query($dbh, $stmt2); if(ibase_fetch_assoc($sth2) == false){ $stmt2 = "SELECT * FROM baza2(1, NULL, 1, NULL, '$symbol_producer')"; $sth2 = ibase_query($dbh, $stmt2); if(ibase_fetch_assoc($sth2) == false){ /* $update = "UPDATE ..."; mysql_query($update) or die(mysql_error()); */ } else{ $row2 = ibase_fetch_assoc($sth2); $artnr = $row2["NR"]; } } else{ $row2 = ibase_fetch_assoc($sth2); $artnr = $row2["NR"]; } }
W efekcie dla przykładu otrzymuję:
Błędny symbol.
Użyłem drugiego symbolu. 1255abc1
Użyłem drugiego symbolu. 1255abc2
Działa za pierwszym. (A TUTAJ NIC)
Jeżeli dla testu zostawię tylko ostatni warunek, to wszystko jest ok, jednak dla tych wszystkich już nie.