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
<?php
function pobierz_k()
{
// zapytanie bazy danych o książki w danej kategorii
$bd_lacz = ibase_connect( 'j.gdb' , 'SYSDBA' , 'masterkey');
if (!$bd_lacz) {
}
$zapytanie = "select * from TOWARY where IDKAT=$IDKAT ";
$wynik =ibase_query($zapytanie);
if (!$wynik)
return false;
$ilosc_ksiazek =ibase_num_fields($wynik);
if ($ilosc_ksiazek ==0)
return false;
$wynik = wynik_bd_do_tablicy($wynik);
return $wynik;
}
?>
Tak wyświetlam dane
<?php
function wyswietl_k($tablica_k)
{
//wyświetlenie wszystkich książek z przekazanej tablicy
{
echo '<br />Brak aktualnie dostępnych książek w tej kategorii<br />'; }
else
{
//stworzenie tabeli
echo '<table width = \"100%\" border=1 rules=rows >'; 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>'; //stworzenie wiersza tabeli dla każdej książki
foreach ($tablica_k as $rzad)
{
$url = 'pokaz_towar.php?kodproduktu='.($rzad['KOD_PRODUKTU']);
echo '<form action="dodano_towary_do_kosza.php" method="post">'; 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>'; tworz_html_url($url, $tytul);
}
echo ' <input type="submit" value="dodaj do kosza"> </form>';
?>
Funkcja wstawiajaca dane
<?php
function wstaw()
{
// zapytanie bazy danych o listę kategorii
$bd_lacz = ibase_connect( 'j.gdb' , 'SYSDBA' , 'masterkey');
if (!$bd_lacz) {
}
$KOD_PRODUKTU=$_POST ['KOD_PRODUKTU'] ;
$NAGLOWEK=$_POST ['NAGLOWEK'] ;
$CENA=$_POST ['CENA'] ;
$ILOSC=$_POST ['ILOSC'] ;
$ok=$_POST ['ok'];
if($ok)
{
$zapytanie = " INSERT INTO KOSZYK (KOD_PRODUKTU,NAGLOWEK,CENA,ILOSC_DODANYCH,SESJA) values ( '$KOD_PRODUKTU','$NAGLOWEK', '$CENA', '$ILOSC','".$_SESSION['uzyt_admin']."') ";
$sth = ibase_query
($bd_lacz, $zapytanie) or
die(ibase_errmsg
()) ; } {
if (!$sth)
{
}
else
{
echo 'dopisałeś włąsnie towar do koszyka' ; }}
}
?>
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
Ten post edytował barthez 24.09.2007, 17:18:48