Cytat
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Jak sama treść mówi masz coś źle z zapytaniem do bazy danych.
Ja mam zrobione to tak:
Na stronie z info o produkcie mam tak:
Kod
<form action=\"koszyk.php\" method=\"post\">
<input type=\"hidden\" name=\"dodaj\" value=\"".$tablica['id']."\" />
<div><strong>Ilosc: <input type=\"text\" name=\"ilosc\" value=\"1\" size=\"5\" /> szt.</strong></div>
<br />
<div><strong>Cena: ".$tablica['cena']." PLN</strong></div>
<div><input type=\"image\" src=\"images/dodaj.png\" /></div>
</form>
gdzie $tablica jest to wynik zapytania do bazy danych.
W pliku koszyk.php mam tak:
Kod
<?php
$koszyk_stan = true;
include("include/config.php");
include("header.php");
include("walidacja.php");
echo "<div id=\"products_big\">
<form method=\"post\" action=\"koszyk.php\">
<input type=\"hidden\" name=\"akcja\" value=\"updatekoszyk\" />
<div class=\"nazwa_koszyk\"></div>
<table class=\"tabela_koszyk\" cellpadding=\"0\" cellspacing=\"0\">
<tr><th>Nazwa produktu</th><th width=\"50\">Ilość</th><th width=\"50\">Usuń</th><th width=\"80\">Cena PLN</th></tr>";
foreach($koszyk as $klucz=>$wartosc)
{
$zapytanie = mysql_query("SELECT * FROM test_produkty WHERE id='".(int)$klucz."' LIMIT 1");
if (mysql_num_rows($zapytanie)>0)
{
$produkt = mysql_fetch_array($zapytanie);
$cena = $produkt['cena'];
echo "<tr><td>".$produkt['nazwa']."</td><td><input size=\"4\" type=\"text\" name=\"ilosci[".$klucz."]\" value=\"".$wartosc."\" disabled=\"disabled\" /></td><td><a href=\"koszyk.php?usun=".$klucz."\"><img src=\"images/koszyk_usun.png\" alt=\"Usuń\" /></a></td><td>".($cena*$wartosc)."</td></tr>";
}
}
echo "<tr><td colspan=\"3\"><strong>Razem: </strong><td><strong>".$suma." PLN</strong></td></tr>";
echo "</table>
<div class=\"koszyk_btns\">
<a href=\"products.php\"><img src=\"images/btn_kontynuuj.jpg\" alt=\"Kontynuuj zakupy\" /></a>"; if(sizeof($koszyk) > 0) {echo "<a href=\"zamowienie.php\"><img src=\"images/btn_zamowienie.jpg\" alt=\"Zamówienie\" /></a></div>";}
echo "</form></div>
</div></div><div id=\"main_down\"></div>";
include("footer.php");
?>
W pliku header.php, który includowany jest na początku skryptu, mam:
Kod
if (!isset($_SESSION["koszyk"]))
{
session_register("koszyk");
$koszyk=array();
}
else
$koszyk=unserialize($_SESSION["koszyk"]);
if ($koszyk_stan==true)
{
if ((int)$_POST["dodaj"]>0)
{
if (isset($koszyk[(int)$_POST["dodaj"]]))
{
$koszyk[(int)$_POST["dodaj"]]+=(int)$_POST["ilosc"];
}
else
{
$koszyk[(int)$_POST["dodaj"]]=(int)$_POST["ilosc"];
}
}
if ((int)$_GET["usun"]>0)
{
unset($koszyk[(int)$_GET["usun"]]);
}
if ($_POST["akcja"]=="updatekoszyk")
{
foreach ($koszyk as $klucz=>$wartosc)
{
if ($_POST["ilosci"][$klucz]==0) unset($koszyk[$klucz]);
else $koszyk[$klucz]=$_POST["ilosci"][$klucz];
}
}
$_SESSION["koszyk"]=serialize($koszyk);
}
$suma=0;
foreach($koszyk as $klucz=>$wartosc)
{
$zapytanie = mysql_query("SELECT `cena` FROM `test_produkty` WHERE `id`='".(int)$klucz."' LIMIT 1");
if (mysql_num_rows($zapytanie)>0)
{
$produkt=mysql_fetch_array($zapytanie);
$cena=$produkt["cena"];
$suma+=($cena*$koszyk[$klucz]);
}
}
Tutaj dodajemy,aktualizuje,my koszyk odnośnie danego produktu, którego "id" zostało pobrane z koszyk.php ($zapytanie = mysql_query("SELECT * FROM test_produkty WHERE id='".(int)$klucz."' LIMIT 1")