Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Klauzula elseif - dlaczego nie działa prawidłowo
Forum PHP.pl > Forum > Przedszkole
jacusek
Stworzyłem skrypt gdzie używam tej funkcji. Analizowałem to na różne sposoby, i nie wiem gdzie popełniam błąd - czy jest to w logice czy w sposobie działania:
Mam formularz z 3 sytuacjami:
1. Mam id nie potrzebuję tworzyć nowej osoby do tabeli, a jednocześnie chcę ją wpisać (jej id do innej tabeli
Skrypt cz. 1:
  1. if (isset($_GET['id_pac'])){
  2. $query1 = 'insert into wizyta (id_pac,id_lek, id_bad, termin, new) values
  3. ( "'.$_GET['id_pac'].'", "'.$_GET['id_lek'].'","'.$_GET['ID_BAD'].'", "'.$_GET['termin'].'",now())';
  4. $result1=mysqli_query($mysqli,$query1) or
  5. die(mysqli_error($mysqli));

I tutaj sprawa jest oczywista i generalnie ta część działa. Są to dane przesyłane z wyszukiwarki.
2 sytuacja kiedy mam człowieka, którego dane chcę wpisać do dwóch tabel, a człowiek podaje mi tylko część danych (tylko imię i nazwisko bez PESEL). Wymyśliłem że zrobię to funkcją elseif
  1. //pacjent nowy pacjent bez PESEL
  2. elseif ((empty($_GET['id_pac']))&&(empty($_GET['PESEL']))){
  3. $query = 'insert into pacjenci (PESEL, nazwisko, imie, miasto, kod, adres, tel, tel_kom, rok_ur) values
  4. (NULL,"'.$_GET['nazwisko'].'","'.$_GET['imie'].'",
  5. "'.$_GET['miasto'].'","'.$_GET['kod'].'",
  6. "'.$_GET['adres'].'","'.$_GET['tel'].'","'.$_GET['tel_kom'].'","'.$_GET['rok_ur'].'")';
  7. $result=mysqli_query($mysqli,$query)
  8. or die(mysqli_error($mysqli));
  9. $query2 = 'insert into wizyta (id_pac, id_lek, id_bad, termin, new) values
  10. ((SELECT max(id_pac) as id_pac from pacjenci),"'.$_GET['id_lek'].'","'.$_GET['ID_BAD'].'", "'.$_GET['termin'].'", now())';
  11. $result1=mysqli_query($mysqli,$query2) or
  12. die(mysqli_error($mysqli));}

I tutaj jest pierwszy problem, bo nie wykonuje się pierwsza część pytania i zupełnie nie rozumiem dlaczego, a z kolei wykonuje się $query2 blink.gif . Nie wiem już czy źle stawiam klamry (już kombinowałem na wszytkie strony, ale na ten prawidłowy sposób nie wpadłem
3 przypadek to kiedy nie ma id)pac (nowa osoba), ale zna email.
I tutaj ma dokładnie ten sam problem. Dół skryptu wygląda tak samo (za zmianą nazw zmiennych też próbowałem) różni się tylko warunek początkowy
  1. elseif ((empty($_GET['id_pac']))&&(isset($_GET['PESEL'])))

Z samym elsem też eksperymentowałem.
Nie wiem, nie umiem znaleźć błędu. Siedzę na tym od jakiegoś czasu. Już nawet myślałem że jest ok, ale część rzeczy nadal wykonywała się z błędem.
Proszę o pomoc bo już zabrakło mi pomysłów co z tym robić. Albo ewentualnie gdzie robię błąd, bo może źle zrozumiałem podręcznik.
Kszyhuu
Zrób trzy razy if i sprawdź, czy zadziała.
jacusek
Dzięki właśnie w tym momencie sobie poradziłem. If odpadał, bo w niektórych przypadkach nakładały się warunki i był problem dlatego musiał być elseif. Ja niepotrzebnie się upierałem na elseif. Jak zakończyłem IFem to było OK.
Trochę mi to zajęło, ale teraz jest OK. 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.