Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Problem z zapisem
Forum PHP.pl > Forum > Przedszkole
bieganj
Witam serdecznie,
Od ostatniego czasu co mi pomogliście trochę czasu upłynęło, sporo się nauczyłem, ale nie na tyle by rozgryźć poniższy problem.

  1. else if ($_POST['kat'] == '10-11-E') {
  2. if ($_POST['imienazwiskoon'] && $_POST['imienazwiskoona'] && $_POST['klub'] && $_POST['miasto']) {
  3. $query = "INSERT INTO kat2 (imienazwiskoon, imienazwiskoona, ";
  4. $query .= "klub, miasto, kraj) VALUES ('".$_POST['imienazwiskoon']."', '".$_POST['imienazwiskoona']."', '".$_POST['klub']."', '".$_POST['miasto']."', '".$_POST['kraj']."');";
  5. $wynik = mysql_query ($query);
  6. }
  7. }


Chodzi oto, że w 2 linii mam 4 pozycje a powinno być 5 ( o dziwo działa). Brak jest " kraj ". Gdy dopiszę pozycję piątą to niczego nie zapisuje w bazie MySQL-owej

W innej pozycji mam jeszcze dodatkowo "st" i "la" i też działa. Powiedzcie proszę czy to w czymś przeszkadza, czy też nie. Czy powinno być dopisane?

  1. else if ($_POST['kat'] == '12-13-C') {
  2. if ($_POST['imienazwiskoon'] && $_POST['imienazwiskoona'] && $_POST['klub'] && $_POST['miasto']) {
  3. $query = "INSERT INTO kat7 (imienazwiskoon, imienazwiskoona, ";
  4. $query .= "klub, miasto, kraj, st, la) VALUES ('".$_POST['imienazwiskoon']."', '".$_POST['imienazwiskoona']."', '".$_POST['klub']."', '".$_POST['miasto']."', '".$_POST['kraj']."',";
  5. $query .= " '".$_POST['st']."', '".$_POST['la']."');";
  6. $wynik = mysql_query ($query);
  7. }
  8. }


Nie chodzi mi oto, że jeśli działa to zostawić. Chcę wiedzieć czy to jest poprawne, czy też nie.
thek
Wszystko zależy od tego co ta zmienna kraj zawiera. Jeśli nic to oczywiste, że warunek się nie wykona bo na poziomie IF może się wywalić i zapytanie nie dojdzie do skutku. Zresztą spróbuj dać tam coś innego i wyświetl błąd jaki baza Ci zwróci -> mysql_error() a na bank to Ci pomoże w lokalizacji błędu. Sprawdź tę zmienną z krajem czy aby nie jest pusta. Jeśli nie to sprawdź co za błąd zwróci baza w czasie próby inserta. Potem przemyśl co za błąd to i jeśli nie będziesz nadal wiedział, zgłoś się do tego tematu smile.gif

EDIT: Zapomniałem napisać... Zapytanie Ci działa bo nawet jeśli zmienna $_POST['kraj'] nie istnieje to zapytanie uzupełni się o pusty string, czyli w zapytaniu pójdzie:
kraj =''
Tyle że włączenie pełnego wyświetlania błędów w PHp wywali Ci ostrzeżenie, że taka zmienna nie istnieje. To chyba rozwiewa Twoje wątpliwości
bieganj
To nie jest pozycja pusta, nawet jak nic nie wybiorę to i tak zapisze "Polska" czyli nie w tym błąd. Problem polega na tym, że (nie wiem czy myślę prawidłowo) powinny być w linii "IF" też dodane
  1. && $_POST['kraj']
jak i w drugim przykładzie
  1. && $_POST['kraj'] && $_POST['st'] && $_POST['la']
.
W zapytaniu $query są wszystkie nazwy komórek.
thek
Zauważ jednak, że jeśli nie ujmiesz w IF tej zmiennej to ona i tak się przepchnie do zapytania sql, bo na sztywno tam ją wpisujesz, nawet jeśli jej nie sprawdzasz. Jeśli wywala ta zmienna IF na false, to znaczy, że jej sprawdzenie jest nie tak. Może rzeczywiście masz tam false lub NULL a baza ma domyślne ustawianie tej kolumny w takim wypadku na Polska. Na Twoim miejscu zacząłbym sprawdzać tę zmienną POST bo może się okazać, że wygląda inaczej niż myślisz.
bieganj
thek, dzięki za zainteresowani. W chwili obecnej rejestracja jest już uruchomiona i działa, tak jak sobie życzyłem. Ponownie do problemu podejdę po zamknięciu rejestracji. Do puki działa to nie będę eksperymentować.
Pozdrawiam
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.