![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 25.02.2007 Skąd: Turośń Dolna Ostrzeżenie: (0%) ![]() ![]() |
Co prawda od dawna bawię się w php, jednak pierwszy raz zdarza mi się taki problem...
Problem niby błahy, a pytałem kilka osób dlaczego mi nie wysyła danych, nie potrafili udzielić odpowiedzi. Mam nadzieję, że pomożecie rozwikłać ten problem. Na czym on polega? Otóż próbuję wysłać dane do bazy, jednak po godzinach prób, nadal się nie udaje. Być może są jakieś błędy w kodzie, ale sprawdzałem mysql_error i nic nie wyświetlało. Oto kod php sprawdzający formularz rejestracji i wysyłający dane do bazy 'db' w tabeli 'users'. Dostępny pod tym adresem: http://phpfi.com/209283 Kod SQL bazy danych: Cytat CREATE TABLE `users` ( `nr` int(20) NOT NULL auto_increment, `login` varchar(20) NOT NULL default '', `pass` varchar(20) NOT NULL default '', `passw` varchar(20) NOT NULL default '', `mail` varchar(20) NOT NULL default '', `email` varchar(20) NOT NULL default '', `gg` varchar(10) NOT NULL default '', `jabber` varchar(20) NOT NULL default '', `www` varchar(20) NOT NULL default '', `hobby` varchar(50) NOT NULL default '', PRIMARY KEY (`nr`) ) TYPE=MyISAM AUTO_INCREMENT=33 ; Oraz kod formularza rejestracji: http://phpfi.com/209266 Ten post edytował pioteer 27.02.2007, 21:10:50 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Najpierw pobierz wartości z POST a dopiero potem wstaw je do zapytania.
Kolejność działań w kodzie powinna być taka: 1. pobranie danych z POST ( $zmienna=$_POST['zmienna']; ) 2. sprawdzenie poprawności wpisanych danych ( czy są wpisane ) 3. zapytanie do bazy |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 25.02.2007 Skąd: Turośń Dolna Ostrzeżenie: (0%) ![]() ![]() |
Poprawiony kod php:
Mimo wszystko, dane nadal nie są zapisywane do bazy danych. Może coś źle w kodzie sql bazy? Ten post edytował pioteer 27.02.2007, 21:14:25 |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Po 48 linii zrób echo $zapytanie ( przed wysłaniem go do bazy ) i sprawdź czy wszystkie dane są takie jak być powinny ( chodzi mi o skopiowanie tekstu, który pokaże się na stronie po wykonaniu kodu ). Jeżeli uważasz, że są OK to wykonaj je bezpośrednio do bazy ( np w phpMyAdminie ) .. albo pokaż je tutaj.
I tak między nami skoro masz w formularzu opcje dodatkowe, to mogłeś je w bazie zrobić NULL a nie NOT NULL default '' |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 25.02.2007 Skąd: Turośń Dolna Ostrzeżenie: (0%) ![]() ![]() |
Wyświetliło się:
Cytat INSERT INTO 'users' VALUES('','login', 'pass', 'pass', 'mail@mail.ru', 'mail@mail.ru', 'gg', 'jid', 'www', 'hobby') A więc wszystko ok, pierwsze pole to nr użytkownika, dlatego jest puste. Jako że pola gg, www, jabber i hobby są opcjonalne ustawię tak jak wspomniałeś wyżej. Ten post edytował pioteer 27.02.2007, 21:58:00 |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Ok czyli dane przekazują sie poprawnie. Jeżeli to zapytanie poprawnie wykonuje się bezpośrednio bazie danych ( z poziomu konsoli lub phpMyAdmina ) to wtedy błędu szukać w połączeniu do bazy.
Może spróbuj z taką budową zapytania:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
...wydaje mi sie ze dla bezpieczenstwa warto usawic jeszcze login jako PRIMATY KEY... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 25.02.2007 Skąd: Turośń Dolna Ostrzeżenie: (0%) ![]() ![]() |
Baza nadal nie działa. Tzn, jak wpisałem
to nie działa, natomiast jeśli wartości są wpisane bez $ to wszystko działa. Dlaczego tak się dzieje? Problem rozwiązany. Wysyłane było pole, którego zapomniałem dać w bazie danych. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki, phpion.com Ten post edytował pioteer 28.02.2007, 10:47:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:20 |