jeśli chodzi ci o wbudowane query mysql'a UPDATE to nie chodzi mi o to. jesli chodzi ci o coś innego to rozwiń trochę tą myśl.
chodzi o to, że po wyświetleniu się koszyka każdy produkt stanowi jeden wiersz tabeli w którym mam: zdjęcie, nazwę produktu, text input z ilością i cenę. po wyświetleniu wszystkich produktów w koszyku pojawia się button "zapisz zmiany". problem polega na tym, że chcę, aby po wciśnięciu tego buttona zapisywane były zmiany w każdym z produktów (czyli jeśli zmienię ilość dwóch produktów to zapisuję zmianę tych dwóch produktów jednocześnie).
edit:
teraz zacząłem sobie rozmyślać nad zastosowaniem array_combine. tworzyłbym dwa arraye podczas wyświetlania produktów: do pierwszego dodawałbym numer identyfikacyjny produktu (powiedzmy, że byłby jako hidden), do drugiego array dodawałbym ilości produktów. całość była by opatrzona formularzem. następnie łączyłbym je tak, aby pierwszy array był kluczem a drugi wartością. czyli np: numer_id_produktu -> ilość_danego_produktu.
nie mam jednak większego doświadczenia w stosowaniu array. zrobiłbym do tego pętlę sczytującą z array klucz i wartość i według tego wykonującą query z updatem... tylko jak wyciągnąć klucz i wartość z array do zmiennych?
edit2:
problem rozwiązany:
cart.php- Kod: Zaznacz wszystko
<?php
session_start();
require("connection.php");
$order = $_SESSION['SESS_ORDER'];
$query = mysql_query("SELECT * FROM prod_zamowienia WHERE oid='$order'");
$count = 0;
echo "<form action='functions.php?do=5' method='post'><table>";
while($prod=mysql_fetch_array($query))
{
$count++;
$pid = $prod['pid'];
$qty = $prod['qty'];
$prod_q = mysql_query("SELECT nazwa_prod, cena FROM produkty WHERE pid='$pid'");
$prod_q = mysql_fetch_array($prod_q);
$produkt = $prod_q['nazwa_prod'];
$cena = $prod_q['cena'];
echo ("<input type='hidden' name='pid".$count."' value='$pid'/><tr><td>$count</td><td>".$produkt."</td><td><input type='text' name='qty".$count."' value='$qty' /></td><td>".$cena." zł</td><td><input type='checkbox' name='delete".$count."' value='ON' /></tr>");
}
echo ("<input type='hidden' name='ilosc' value='".$count."' /><br />");
echo "</table><input type='submit' name='submit' value='Zmień' /></form>";
?>
connection.php to plik z polaczeniem do bazy danych, nastepnie z sesji pobieram numer zlecenia (zapisywany do sesji podczas logowania). z tabeli
prod_zamowienia wybieram numer identyfikacyjny produktu i jego ilosc w zamowieniu. wpisana jest takze wyzerowana zmienna $count (dlaczego - wyjasnienie nizej). potem tworzony jest while dla kazdego produktu w zamowieniu, z tabeli
produkty pobierane są nazwa produktu i jego cena. w echo w inputach do name wpisuje np. 'pid".$count co dla pierwszego wczytanego produktu daje pid1, dla drugiego pid2 itd. itd. $count pojawia sie tez w input 'ilosc' - bedzie sygnalizowala ilosc powtorzen dla for w nastepnym kodzie. calosc przesylana jest do pliku functions.php
functions.php
- Kod: Zaznacz wszystko
...
case '5':
function cart_change() {
if (isset($_SESSION['SESS_ORDER']))
{
$order = $_SESSION['SESS_ORDER'];
for($count = 1; $count <= $_POST['ilosc']; $count++)
{
$pid = $_POST['pid'.$count];
if (isset($_POST['delete'.$count]))
{
mysql_query("DELETE FROM prod_zamowienia WHERE pid='$pid' AND oid='$order'");
}
else
{
$qty = $_POST['qty'.$count];
if ($qty == 0)
{
mysql_query("UPDATE prod_zamowienia SET qty='1' WHERE oid='$order' AND pid='$pid'");
}
else
{
mysql_query("UPDATE prod_zamowienia SET qty='$qty' WHERE oid='$order' AND pid='$pid'");
}
}
}
}
else
{
echo "Użytkownik musi być zalogowany, aby móc korzystać z koszyka.";
}
include("cart.php");
}
cart_change();
break;
...
zmienne wczytywane sa z formularza i wpisywane do bazy.