Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Problem z zapisem
bieganj
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.08.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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

Ten post edytował thek 7.11.2009, 23:22:13


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
bieganj
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.08.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
bieganj
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.08.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 16:16