![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 17.04.2018 Ostrzeżenie: (0%) ![]() ![]() |
Chcę uaktualnić rekord. Wpisałem kod:
CODE if ($wszystko_OK==true) { $polaczenie -> query("UPDATE klienci SET imie='$imie', nazwisko='$nazwisko', malzonek_imie='$imiemalzonek', malzonek_nazwisko='$nazwiskomalzonek', telefon='$telefon', miasto='$miasto', ulica='$ulica', nr_domu='$nrdomu', nr_mieszkania='$nrmieszkania', pesel='$pesel', farmakoterapia='$farmakoterapia', poprzednie_terapie='$psychoterapia', opis='$opis', kontrakt='$kontrakt', cena_atualna='$cena' WHERE id_klienta='$id'"); $_SESSION['zapisano']="Zmodyfikowano wpis w bazie danych"; } Warunek jest spełniony - wyświetla się $_SESSiON['zapisano'] potraktowany printem; Połączenie jest nawiązane. Wszystkie zmienne użyte w zapytaniu są ustawione - wyświetlają się printem. UPDATE wpisane w phpMyAdminie działa. Po kliknięciu na guzik submit w formularzu strona się odświeża, w bazie nic się nie zmienia. Gdzie tkwi błąd? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 3 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@mrk9109 twoje poprawki maja sie nijak do problemu.
@bigda by miec 100% pewnosci ze odpala ci sie ten IF to daj
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 376 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W zależności od sterownika (w sumie nie wiadomo czy PDO, czy mysqli) obejmij zapytanie blokiem try/catch i ustaw wyświetlanie błędów. Dodatkowo korzystaj z bindowania parametrów.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 17.04.2018 Ostrzeżenie: (0%) ![]() ![]() |
mrk9109 Spróbowałem, niestety żadnych zmian.
nospor Wyświetla się wszystko - zapytanie, treść wypełnionych pól formularza - czyli niepuste zmienne, a na koniec napis "widzisz mnie?". If chyba jednak działa. viking Jestem totalnie zielony, bo dopiero co zacząłem się uczyć, a i to tylko hobbystycznie robię, choć staram się zrobić coś użytkowego dla siebie. Było nie było nie wiem, czy dobrze zastosowałem się do Twojej rady. Błędy wyświetliłem kodem
Zapytanie: Kod if ($wszystko_OK==true) { try { $polaczenie -> query("UPDATE klienci SET imie='$imie', nazwisko='$nazwisko', malzonek_imie='$imiemalzonek', malzonek_nazwisko='$nazwiskomalzonek', telefon='$telefon', miasto='$miasto', ulica='$ulica', nr_domu='$nrdomu', nr_mieszkania='$nrmieszkania', pesel='$pesel', farmakoterapia='$farmakoterapia', poprzednie_terapie='$psychoterapia', opis='$opis', kontrakt='$kontrakt', cena_atualna='$cena' WHERE id_klienta='$id'"); } catch(Exception $e) { echo '<span style="color:red;">Błąd serwera! Przepraszamy za niedogodności i prosimy o rejestrację w innym terminie!</span>'; echo '<br />Informacja developerska: '.$e; } $_SESSION['zapisano']="Zmodyfikowano wpis w bazie danych"; } Bez zmian - nic się nie zmienia, nie wyświetlają się błędy wyświetla. O PDO i o bindowaniu coś słyszałem, ale jeszcze nie umiem. Będę grzebać w necie i uczyć się. Połączenie jest w mysqli. Zastanawiam się, czy problemem może być to, że nie wszystkie pola formularza są obowiązkowe, a puste pole, to pusta zmienna w zapytaniu. Wcześniej w innym skrypcie już miałem taki problem, ale rozwiązałem go naokoło - tutaj takiej metody nie dam rady zastosować. Cały skrypt jest identyczny jak w innym miejscu tej samej stronki, tylko zmienne są inne. Tam też występują w zapytaniu puste zmienne i wszystko działa jak należy. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Skoro uzywasz mysqli to blad zapytania masz tutaj
http://php.net/manual/en/mysqli.error.php Wyswietl go sobie po wykonanym zapytaniu -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 376 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W mysqli potrzebujesz dodatkowo
O bindowaniu obowiązkowo poczytaj bo pewnie te zmienne pochodzą od usera -> sql injection. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 17.04.2018 Ostrzeżenie: (0%) ![]() ![]() |
Jesteście wielcy!!!!
Pomogły porady nt. wyświetlania błędów - jak się wyświetlił, sprawa okazała się banalna. W zapytaniu użyłem nazwy kolumny cena_atualna zamiast cena_aktualna. Sto razy sprawdzałem literówki i nie zauważyłem. O bindowaniu na pewno poczytam, ale na razie zagrożenia nie ma, bo ja będę jedynym użytkownikiem tego, co akurat teraz robię. To taka baza danych dla mojej działalności, a w php piszę sobie panel do obsługi bazy. Ale mam już następny pomysł, więc cały czas będę się doszkalał. Jeszcze raz bardzo dziękuję ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.05.2025 - 07:02 |