Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapisanie danych z formularza do bazy
Forum PHP.pl > Forum > Przedszkole
miszarus
Witam, mam dwa pliki, i chcę aby zawartość wrzucało mi rezerwację do bazy. Niby jest ok, a wyskakuje błąd?
Prosze o pomoc

  1. <form action="rezerwacjadobazy.php" method="post">
  2. Wybierz pokój:<br><br>
  3. APARTAMENTY:<br>
  4. <input type="checkbox" name="id_pokoje" value="1" /> APARTAMENT SMOKA<br>
  5. <input type="checkbox" name="id_pokoje" value="2" /> APARTAMENT KRÓLOWEJ<br>
  6. <input type="checkbox" name="id_pokoje" value="3" /> APARTAMENT SZEFA
  7. <br><br>
  8. POKOJE 1-OSOBOWE:<br>
  9. <input type="checkbox" name="id_pokoje" value="4" /> Pokój101<br>
  10. <input type="checkbox" name="id_pokoje" value="5" /> Pokój102<br>
  11. <input type="checkbox" name="id_pokoje" value="6" /> Pokój103
  12. <br><br>
  13.  
  14. POKOJE 2-OSOBOWE:<br>
  15. <input type="checkbox" name="id_pokoje" value="7" /> Pokój201<br>
  16. <input type="checkbox" name="id_pokoje" value="8" /> Pokój202<br>
  17. <input type="checkbox" name="id_pokoje" value="9" /> Pokój203
  18. <br><br>
  19.  
  20. POKOJE 3-OSOBOWE:<br>
  21. <input type="checkbox" name="id_pokoje" value="10" /> Pokój301<br>
  22. <input type="checkbox" name="id_pokoje" value="11" /> Pokój302<br>
  23. <input type="checkbox" name="id_pokoje" value="12" /> Pokój303
  24. <br>
  25. <br><br>
  26. Proszę o podanie daty w formacie: RRRR-MM-DD (np. 2010-01-17)<br>
  27. Pobyt od: <input type="text" name="pobyt_od" maxlength="10" /><br>
  28. Pobyt do: <input type="text" name="pobyt_do" maxlength="10" /><br><br><br>
  29. Wybierz usługi dodatkowe:<br>
  30. <input type="checkbox" name="id_uslugi" value="1" /> śniadanie<br>
  31. <input type="checkbox" name="id_uslugi" value="2" /> kolacja<br>
  32. <input type="checkbox" name="id_uslugi" value="3" /> szampan
  33. <br><br><br><br>
  34. <input type="checkbox" name="czyfaktura" value="1" /> Zaznacz opcję jeżeli ma być wystawiona faktura VAT:<br><br><br>
  35.  
  36. <input type="submit" value="ZAREZERWUJ" />
  37.  
  38. </form>


  1. require('conn.php');
  2.  
  3.  
  4. $id_pokoje=$_POST['id_pokoje'];
  5. $id_uslugi=$_POST['id_uslugi'];
  6. $pobyt_od=$_POST['pobyt_od'];
  7. $pobyt_do=$_POST['pobyt_do'];
  8. $czyfaktura=$_POST['czyfaktura'];
  9.  
  10. $zapytanie="INSERT INTO `rezerwacja`(id_pokoje,pobyt_od,pobyt_do,id_uslugi,id_faktura) VALUES('$id_pokoje','$pobyt_od','$pobyt_do','$id_uslugi','$czyfaktura')";
  11. $wynik = @mysql_query($query);
  12. if ($result){ //jezeli nie wystąpiły żadne blędy
  13. $message .= 'Twoje dane zostały dodane do bazy';
  14. }else{
  15. $message .= 'Wystąpił błąd. Przepraszamy za utrudnienia<br />';
  16. }
  17.  
  18.  
  19. if(isset($message)){
  20. echo $message;
  21. }
  22.  
  23. ?>
Max Damage
A jak brzmi treść tego błędu?
Zrób sobie:
  1. mysql_query($query) or die(mysql_error());

I usuń @, sprawdź też poprzez echo czy w ogóle przesyła ci dane.
miszarus
Taka jaką sobie zapisałem. Wystąpił błąd, Przepraszamy za utrudnienia i tyle smile.gif
Coś jest nie tak...dlaczego nie wysyła danych do bazy....
uppps,
wywala coś takiego:
"Query was empty"
ale jak to zapytanie puste??
Max Damage
A faktycznie też nie zauważyłem:
  1. $wynik = mysql_query($zapytanie) or die(mysql_error());
miszarus
Cannot add or update a child row: a foreign key constraint fails (`miszarus_hotel/rezerwacja`, CONSTRAINT `rezerwacja_ibfk_9` FOREIGN KEY (`id_rezerwacji`) REFERENCES `users` (`idrezerwacji`) ON DELETE CASCADE ON UPDATE CASCADE)
Max Damage
Próbujesz wstawić do tabeli wartość której nie ma w drugiej tabeli? Chodzi mi konkretnie o klucz obcy. W jaki sposób masz powiązane te tabele? Pokaż je.
miszarus
Przepraszam za jakość...
I Proszę bardzo o pomoc smile.gif
Będę wdzięczny biggrin.gif

rezerwacja
Komentarze tabeli: InnoDB free: 21504 kB; (`id_faktura`) REFER `miszarus_hotel/faktura`(`id_faktura

Pole Typ Null Domyślnie Łącze Komentarze
id_rezerwacji int(10) Nie users -> idrezerwacji
id_pokoje int(10) Nie pokoje -> id_pokoje
id_klienta int(10) Nie users -> idusers
pobyt_od varchar(20) Nie
pobyt_do varchar(20) Nie
id_uslugi int(10) Nie dodatkowe_uslugi -> id_uslugi
id_faktura int(50) Nie faktura -> id_faktura

users
Komentarze tabeli: InnoDB free: 21504 kB; (`idusers`) REFER `miszarus_hotel/users`(`idusers`)

Pole Typ Null Domyślnie Łącze Komentarze
idusers int(5) Nie users -> idusers
login varchar(50) Nie
password varchar(40) Nie
pracownik varchar(40) Nie
imie varchar(40) Nie
nazwisko varchar(40) Nie
miejscowosc varchar(40) Nie
ulica varchar(40) Nie
kod_pocztowy varchar(40) Nie
telefon varchar(40) Nie
email varchar(40) Nie
idrezerwacji int(50) Nie

pokoje
Komentarze tabeli: InnoDB free: 21504 kB

Pole Typ Null Domyślnie Komentarze
id_pokoje int(11) Nie
nrpokoju varchar(5) Nie
nazwa_pokoju varchar(20) Nie
typ_pokoju varchar(20) Nie
cena varchar(5) Nie

faktura
Komentarze tabeli: InnoDB free: 21504 kB; (`id_uslugi`) REFER `miszarus_hotel/rezerwacja`(`id_uslug

Pole Typ Null Domyślnie Łącze Komentarze
id_faktura int(10) Nie faktura -> id_faktura
id_klienta int(10) Nie users -> idusers
id_rezerwacji int(10) Nie users -> idrezerwacji
id_uslugi int(10) Nie rezerwacja -> id_uslugi
czyfaktura varchar(5) Nie

dodatkowe_uslugi

Komentarze tabeli: InnoDB free: 21504 kB

Pole Typ Null Domyślnie Komentarze
id_uslugi int(10) Nie
typ_uslugi varchar(20) Nie
cena varchar(20) Nie
Max Damage
Domyślam się, że chodzi o to iż w przydadku wykasowania uzytkownika mają być usuwane jego rezerwacje. Wobec tego masz na złym polu klucz obcy.
  1. CREATE TABLE `users` (
  2. `id` int(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. `login` varchar(50) ,
  4. `password` varchar(40) ,
  5. `pracownik` varchar(40)
  6. ) ENGINE = InnoDB DEFAULT CHARSET=utf8;
  7.  
  8. CREATE TABLE `rezerwacja` (
  9. `id` int(50) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  10. `id_pokoje` int(10) ,
  11. `id_users` int(5) ,
  12. `pobyt_od` int(20) ,
  13. `pobyt_do` int(20),
  14. `id_uslugi` int(10) ,
  15. `id_faktura` int(50) ,
  16. CONSTRAINT `user_ids` FOREIGN KEY (`id_users`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  17. ) ENGINE = InnoDB DEFAULT CHARSET=utf8;

Z zapytaniu wstawiającym do tabeli rezerwacja musisz podać id usera inaczej wywali błąd, ten sam błąd pokaże się także gdy podanego id nie będzie w powiązanej tabeli.
miszarus
hmmm, błąd dalej się pojawia.
Usunę wszystkie relacje i zrobię je na nowo, zobaczymy co wyjdzie biggrin.gif
z tabeli USERS pole idrezerwacji do tabeli REZERWACJE do pola idrezerwacji

no własnie nie wiem

wyskakuje takie coś

#1062 - Duplicate entry '0' for key 2

bo udało mi się utworzyć ten klucz ale nie mogę zrobić relacji

klucz jednoznaczny już jest
#1452 - Cannot add or update a child row: a foreign key constraint fails (`miszarus_hotel/#sql-215e_1f4da3d`, CONSTRAINT `#sql-215e_1f4da3d_ibfk_1` FOREIGN KEY (`id_rezerwacji`) REFERENCES `rezerwacja` (`id_rezerwacji`))


gdy rezerwuje wyskakuje:
Column count doesn't match value count at row 1
Max Damage
A czy w tabeli users którą ci pokazałem jest pole idrezerwacji ? Nie ma, bo go nie potrzeba. Czytanie ze zrozumieniem się kłania.
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.