Mam dość złożony skrypt w którym nie bardzo wiem dlaczego nie wszystko działa. Mam formularz przez któy wprowadzam pacjentów. Są tam dane osobowe wraz z PESEL. Jednak PESEL nie zawsze w momencie zapisywania będzie znany.
Dane wpisywane są do tab pacjenci i tabeli wizyta jednocześnie i w niektórych przypadkach skrypt działa nie tak jak powinien. Dodatkowo mam wyszukiwarkę która wyszukuje pacjentów i możliwość przekierowania z niej wyszukanego pacjenta żeby zrobić rezerwację.
początek skryptu:
<?php include('connect2.php'); $pytanie='select max(id_pac) as id_pac from pacjenci'; if ($res=mysqli_query($mysqli,$pytanie)){ while ($row=mysqli_fetch_row($res)) $max=$row['id_pac'];} //jeżeli pacjent ma już id - przeniesione dane z wyszukiwarki if ($_GET['id_pac']<=$max){ $query1 = 'insert into wizyta (id_pac,id_lek, id_bad, termin, new) values ( "'.$_GET['id_pac'].'", "'.$_GET['id_lek'].'","'.$_GET['ID_BAD'].'", "'.$_GET['termin'].'",now())'; $result1=mysqli_query($mysqli,$query1) or
I tutaj pierwszy błąd - rezerwuje wizytę pacjenta nie tego "wyciągniętego z przeglądarki" tylko pacjenta z najwyższym ID. Muszę zostawić wartość <= bo może się zdarzyć, że nowy pacjent który dopiero co się zapisał chce od razu zarezerwować 2 wizytę.
następna część:
//pecjent bez znajomości PESEL z nową wizytą if (($_GET['id_pac']=="")&&($_GET['PESEL']=="")){ $query = 'insert into pacjenci (PESEL, nazwisko, imie, miasto, kod, adres, tel, tel_kom, rok_ur) values (NULL,"'.$_GET['nazwisko'].'","'.$_GET['imie'].'", "'.$_GET['miasto'].'","'.$_GET['kod'].'", "'.$_GET['adres'].'","'.$_GET['tel'].'","'.$_GET['tel_kom'].'","'.$_GET['rok_ur'].'")'; $result=mysqli_query($mysqli,$query)
tutaj pacjent wpisuje się prawidłowo do tabeli pacjenci, ale nieprawidłowo zapisuje się wizyta - tzn. w tabeli wizyta zapisuje się w dwóch wierszach. Tabela składa się z ID_WIZ, ID_PAC, ID_LEK, ID_BAD i terminu. I w pierwszym wierszu wpisują się wszystkie dane poza ID_PAC (wpisuje się 0, a w drugim wierszu jest już OK).
Taka sama sytuacja jest w ostatnim przypadku. Pacjent nowy, ale zna swój PESEL, ale znowu w tabeli wizyta 2 wiersze.
//pacjent z PESEL na nową wizytę if (($_GET['id_pac']=="")&&($_GET['PESEL']>0)){ $query5 = 'insert into pacjenci (PESEL, nazwisko, imie, miasto, kod, adres, tel, tel_kom, rok_ur) values ("'.$_GET['PESEL'].'","'.$_GET['nazwisko'].'","'.$_GET['imie'].'", "'.$_GET['miasto'].'","'.$_GET['kod'].'", "'.$_GET['adres'].'","'.$_GET['tel'].'","'.$_GET['tel_kom'].'","'.$_GET['rok_ur'].'")'; $result5=mysqli_query($mysqli,$query5) $pytanie1='SELECT max(id_pac) as id_pac from pacjenci'; $pacjent = mysqli_fetch_assoc($max_pac1); $pac = $pacjent['id_pac']; $query2 = 'insert into wizyta (id_pac, id_lek, id_bad, termin, new) values ("'.$pac.'","'.$_GET['id_lek'].'","'.$_GET['ID_BAD'].'", "'.$_GET['termin'].'", now())'; $result1=mysqli_query($mysqli,$query2) or
Jak można te błędy naprawić. Z góry dzięki za pomoc.