Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pomoc w dodawaniu tablicy do bazy danych
Forum PHP.pl > Forum > Przedszkole
grzes22
Witam mam taki oto problem. Mianowicie chce dane z jednego formularza zapisywać do dwóech tabel.
Mam taką bazę danych
  1. CREATE TABLE kupony (
  2. idkupony INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. uzytkownik_iduser INTEGER UNSIGNED NOT NULL,
  4. data_kuponu DATE NULL,
  5. stawka DOUBLE NULL,
  6. bukmacher VARCHAR(45) NULL,
  7. ako DOUBLE NULL,
  8. rozliczenie VARCHAR(12) NULL,
  9. PRIMARY KEY(idkupony, uzytkownik_iduser),
  10. INDEX kupony_FKIndex1(uzytkownik_iduser)
  11. );
  12.  
  13. CREATE TABLE uzytkownik (
  14. iduser INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  15. login VARCHAR(20) NULL,
  16. email VARCHAR(255) NULL,
  17. pass VARCHAR(45) NULL,
  18. imie VARCHAR(20) NULL,
  19. nazwisko VARCHAR(45) NULL,
  20. PRIMARY KEY(iduser)
  21. );
  22.  
  23. CREATE TABLE zdarzenia (
  24. idzdarzenia INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  25. kupony_idkupony INTEGER UNSIGNED NOT NULL,
  26. kupony_uzytkownik_iduser INTEGER UNSIGNED NOT NULL,
  27. zdarzenie VARCHAR(45) NULL,
  28. typ INTEGER UNSIGNED NULL,
  29. wynik VARCHAR(20) NULL,
  30. zal_nzal ENUM('tak', 'nie') NULL,
  31. kurs DOUBLE NULL,
  32. PRIMARY KEY(idzdarzenia, kupony_idkupony, kupony_uzytkownik_iduser),
  33. INDEX zdarzenia_FKIndex1(kupony_idkupony, kupony_uzytkownik_iduser)
  34. );


i taki formularz html/php plik formularz.dodajkupon.php

  1. <form method="post" action="dodawanie_kuponu.php" class="dodajkupon">
  2. <ul class="d_k">
  3.  
  4. <li><label for="data"><b>Data kuponu:</b></label><input type="data" name="data" value="<?php echo $data; ?>" /></li>
  5. <li><label for="stawka"><b>Stawka:</b></label><input type="text" name="stawka" /></li>
  6. <li><label for="bukmacher"><b>Bukmacher:</b></label><input type="text" name="bukmacher" /></li>
  7.  
  8. <?php
  9. $i=0;
  10. $ilosc = $_POST['ilosc'];
  11.  
  12. //validacja zdarzenia
  13. include_once('class.walidacja.php');
  14. $error = false;
  15. $walidacja = new walidacja();
  16. if(!$walidacja ->sprawdz_ilosc($ilosc)) { $error = true; echo "\n"; }
  17.  
  18. for ($i; $i<$ilosc; $i++)
  19. {
  20. echo '<li><label for="zdarzenie'.$i.'"><b>Zdarzenie:</b></label><input type="text" name="zdarzenie'.$i.'" /></li>';
  21. echo '<li><label for="typ'.$i.'"><b>Typ:</b></label><input type="text" name="typ'.$i.'" /></li>';
  22. echo '<li><label for="kurs'.$i.'"><b>Kurs:</b></label><input type="text" name="kurs'.$i.'" /></li>';
  23. }
  24.  
  25. ?>
  26.  
  27. <li><label for="ako"><b>AKO:</b></label><input type="text" name="Ako" /></li>
  28. <li><label for="ilosc"></label><input type="hidden" name="ilosc" value="<?= $ilosc ?>" /></li>
  29. <ul class="centerbutton"><input type="submit" value="Dodaj Kupon" /></ul>
  30. </ul>
  31. </form>
  32.  


i plik dodawanie_kuponu.php
  1. <?php
  2. $stawka = $_POST['stawka'];
  3. $bukmacher = $_POST['bukmacher'];
  4. $data = $_POST['data'];
  5. $i=0;
  6.  
  7.  
  8. $zdarzenie = array();
  9.  
  10. $typ = array();
  11.  
  12. $kurs = array();
  13.  
  14. //wypisywanie tablic
  15.  
  16. for ($i; $i<$_POST["ilosc"]; $i++) {
  17.  
  18. $zdarzenie[] = $_POST["zdarzenie".$i];
  19.  
  20. $typ[] = $_POST["typ".$i];
  21.  
  22. $kurs[] = $_POST["kurs".$i];
  23.  
  24. }
  25.  
  26.  
  27.  
  28.  
  29. include_once('class.walidacja.php');
  30. $error = false;
  31. $walidacja = new walidacja();
  32. //sprawdzanie poprawnosci wpisanej stawki
  33. if(!$walidacja ->sprawdz_stawka($stawka)) { $error = true; echo "\n"; }
  34. if(!$walidacja ->sprawdz_bukmachera($bukmacher)) { $error = true; echo "\n"; }
  35. if(!$walidacja ->sprawdz_data($data)) { $error = true; echo "\n"; }
  36.  
  37.  
  38.  
  39. ?>


najpierw użytkownik wybiera ile chce dodać zdarzeń do kuponu następnie wprowadza te dane.
Tu jest moje pytanie bo kompletnie nie mam pomysłu jak można dodać tablicę do bazy danych.
Czekam na jakieś propozycje gdyż nie wiem z której strony się za to zabrać.
Pilsener
Po co masz dopasowywać dane do bazy? Masz jakiś wpływ na budowę bazy danych? Dostosuj model danych tak, aby przechowywał informacje których potrzebujesz w łatwy i przyjazny sposób, po co komplikować sobie życie? Jeśli masz problem z zaprojektowaniem bazy to opisz dokładnie, jak to ma działać a na pewno pomożemy.
grzes22
znaczy się sytuacja przedstawia się następująco.
Jest sobie użytkownik który może dodawać sobie kupony a wiadomo kupon może mieć jedne zdarzenie albo więcej, wydawało mi się, że baza danych jest zaprojektowana w miarę poprawnie.
Tylko nie bardzo wiem jak to rozwiązać jako całośćquestionmark.gif
Napiszę jak to wygląda a wy mi napiszcie jakbyście to zaprojektowali sami.
1.Najpierw użytkownik, który chce dodać kupon wpisuje ilość zdarzeń które chce dodać do kuponu.
2. Wyświetla się formularz użytkownik go wypełnia i wysyła, jeśli użytkownik wybrał powiedzmy 2 zdarzenia, pętla nadaje nazwy pól formularza zdarzenie0 zdarzenie1
3. skrypt zapisuje do bazy danych
Pilsener
No to musisz to rozbić na kilka tabel - robiłem niedawno podobny skrypt do zamówień: klient mógł złożyć jedno zamówienie, które składało się z n pozycji, a każda pozycja jeszcze miała ruchy magazynowe i inne opcje, w sumie kilkanaście tabel winksmiley.jpg

Punktem wyjścia są kupony, zatem musi być tabela powiedzmy "kupony" z wszystkimi podstawowymi informacjami, typu kto utworzył, kiedy itd. Do tego dochodzi tabela "zdarzenia", której rekordy łączysz z tabelą kupony polem id_kuponu, jednemu kuponowi odpowiada jedno lub więcej zdarzeń czy tam elementów.
grzes22
no to niby mam tak zrobione, tylko się zastanawiam w jaki sposób ten skrypt powinien to do bazy dodawać. nie za bardzo wiem jak się do tego zabrac??
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.