Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] Jak zapisać masowo rekordy bo bazy
Forum PHP.pl > Forum > Przedszkole
barthez
Witam serdecznie, próbuje różnymi metodami zapisywać dane z formularza do bazy danych.Otóż jest to masowe zapisanie rekordów do tej samej tabeli.
Robie mały sklep gdzie po wyszukaniu towaru wyswietla się np: 30 towarów, gdzie przy kazdym towarze wyświetla się nazwa towaru, ilosc dostepnych, cena, pole ile chcemy danego towaru, oraz checkbox. Problem polega na tym że zawsze pobiera mi dane ostatniej zamówionej rzeczy. Wybieram 10 towarów, zaznaczam checkbox, i zawsze dopisuje mi ostatni towar do bazy.

Pobieram rekordy

  1. <?php
  2. function pobierz_k()
  3. {
  4.  // zapytanie bazy danych o książki w danej kategorii
  5.  
  6.  
  7.  $bd_lacz = ibase_connect( 'j.gdb' , 'SYSDBA' , 'masterkey');
  8.  
  9.  if (!$bd_lacz) {
  10.  echo 'brak polaczenia' ;
  11.  exit;
  12.  }
  13.  $zapytanie = "select * from TOWARY where IDKAT=$IDKAT ";
  14. $wynik =ibase_query($zapytanie);
  15.  if (!$wynik)
  16.  return false;
  17.  $ilosc_ksiazek =ibase_num_fields($wynik);
  18.  if ($ilosc_ksiazek ==0)
  19. return false;
  20.  $wynik = wynik_bd_do_tablicy($wynik);
  21.  return $wynik;
  22. }
  23. ?>


Tak wyświetlam dane
  1. <?php
  2. function wyswietl_k($tablica_k)
  3. {
  4. //wyświetlenie wszystkich książek z przekazanej tablicy
  5. if (!is_array($tablica_k))
  6. {
  7.  echo '<br />Brak aktualnie dostępnych książek w tej kategorii<br />';
  8. }
  9. else
  10. {
  11.  
  12.  
  13. //stworzenie tabeli
  14.  
  15. echo '<table width = \"100%\" border=1 rules=rows >';
  16.  echo '<tr><th width=100 align=left> kod produktu</th><th width=200 align=left> nazwa produktu</th><th width=200 align=center>przeglądaj</th><th width=100 align=center>dostępna ilość</th><th width=50 align=center>cena </th><th width=50> koszyk</tr>';
  17. //stworzenie wiersza tabeli dla każdej książki
  18. foreach ($tablica_k as $rzad)
  19. {
  20.  $url = 'pokaz_towar.php?kodproduktu='.($rzad['KOD_PRODUKTU']);
  21. echo '<form action="dodano_towary_do_kosza.php" method="post">';
  22. echo '<tr valign=left><td width=100><input type=hidden name=KOD_PRODUKTU value=' .$rzad['KOD_PRODUKTU'].' />' .$rzad['KOD_PRODUKTU'].'</td><td width=200><input type=hidden name=NAGLOWEK value=' .$rzad['NAGLOWEK'].' />' .$rzad['NAGLOWEK'].'</td><td width=200 align=center><a href =pokaz_ksiazke.php?kodproduktu='.($rzad['KOD_PRODUKTU']).'>Zobacz produkt</a></td><td width=100 align=center>' .$rzad['ILOSC_DOSTEPNYCH'].'</td><td width=50 align=center><input type=hidden name=CENA value=' .$rzad['CENA'].'>' .$rzad['CENA'].'</td><td align=center><input type=text size=5 name=ILOSC value=0 ></td><td><input type=checkbox name=ok ></td></tr>';
  23. tworz_html_url($url, $tytul);
  24. }
  25. echo '</table>';
  26.  echo ' <input type="submit" value="dodaj do kosza">
  27.  </form>';
  28. ?>

Funkcja wstawiajaca dane

  1. <?php
  2. function wstaw()
  3. {
  4.  // zapytanie bazy danych o listę kategorii
  5.  $bd_lacz = ibase_connect( 'j.gdb' , 'SYSDBA' , 'masterkey');
  6.  
  7.  if (!$bd_lacz) {
  8.  echo 'brak polaczenia' ;
  9.  exit;
  10.  }
  11.  
  12. $KOD_PRODUKTU=$_POST ['KOD_PRODUKTU'] ;
  13. $NAGLOWEK=$_POST ['NAGLOWEK'] ;
  14. $CENA=$_POST ['CENA'] ;
  15. $ILOSC=$_POST ['ILOSC'] ;
  16. $ok=$_POST ['ok'];
  17.  if($ok)
  18.  {
  19.  
  20. $zapytanie = " INSERT INTO KOSZYK (KOD_PRODUKTU,NAGLOWEK,CENA,ILOSC_DODANYCH,SESJA) values ( '$KOD_PRODUKTU','$NAGLOWEK', '$CENA', '$ILOSC','".$_SESSION['uzyt_admin']."') ";
  21. $sth = ibase_query($bd_lacz, $zapytanie) or die(ibase_errmsg()) ; }
  22.  {
  23. if (!$sth)
  24. {
  25. echo ' nie udało się';
  26. }
  27.  else
  28.  {
  29.  echo 'dopisałeś włąsnie towar do koszyka' ;
  30.  }}
  31.  
  32.  
  33.  
  34. }
  35. ?>


Oczywiście w index mam wywołanie tych funkcji, ale istotą rzeczy jest to , że zapisuje tylko ostatni zaznaczony towar, a powinien wszystkie...Bedę wdzięczny za pomoc
Cysiaczek
Ja też będe wdzięczny... za poprawienie tematu na zgodny z zasadami forum Przedszkole

Pozdrawiam.
tomeksobczak
  1. <input type=hidden name=KOD_PRODUKTU[] value=' .$rzad['KOD_PRODUKTU'].' />


a w php pod nazwa zmiennej pojawi sie tablica z kodami


autopoprawka
  1. <input type=hidden name=KOD_PRODUKTU[ID_Z_BAZY] value=' .$rzad['KOD_PRODUKTU'].' />
barthez
Jednak to nie to sad.gif Kurcze...
PawelC
Zobacz tak
Kod
$zapytanie = " INSERT INTO KOSZYK (`KOD_PRODUKTU`,`NAGLOWEK`,`CENA`,`ILOSC_DODANYCH`,`SESJA`)
values ( '$KOD_PRODUKTU','$NAGLOWEK', '$CENA', '$ILOSC','.$_SESSION['uzyt_admin'].') ";
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.