Door
Jordy R
op 29-08-2013 17:13
gewijzigd op 29-08-2013 19:20
5.011 views
hoi allemaal
krijg de hele tijd een falende query ( eerst deed hij het wel) mijn fout afhandeling zegt foute sql syntax
dus heb hem ingevoerd in mijn phpadmin en er staat een , te veel in me query.
nu komt het probleem de query bevat een implode van een variable en ik krijg hem niet veranderd.
heel iritant kom pas net kijken bij php en sql hoop dat iemand me kan helpen
Dit is de melding
Error: 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 '2,1) ORDER BY id ASC' at line 1
SELECT id, name, image, description, price FROM Tblproducts WHERE id IN(,2,1) ORDER BY id ASC
Als ik dit invoer bij phpadmin werkt hij wel
SELECT id, name, image, description, price FROM Tblproducts WHERE id IN(2,1) ORDER BY id ASC
mijn query in mijn script is
$query = 'SELECT id, name, image, description, price FROM Tblproducts WHERE id IN('.implode(',', array_keys($_SESSION['cart'])).') ORDER BY id ASC';
eddy heeft gelijk denk ik
en dat verklaart ook waarom hij het nu niet meer doet en eerst wel (zonder aan me script te hebben gezeten ) wel aan me database gezeten tevens werkt het trimmen niet hij haalt alle komma's weg en niet alleen de eerste maar wil jullie wel bedanken voor het lesje "trimmen"
ga nu met eddy's idee aan de slag
[size=xsmall]Toevoeging op 30/08/2013 20:18:39:[/size]
ik krijg het niet voor elkaar om die functie er in te krijgen hij blijft
Parse error: syntax error, unexpected ';' in regel geven
en al ik hem weg haal krijg ik deze
Parse error: syntax error, unexpected T_IF in regel
// laat de winkelwagen zien
if(count($_SESSION['cart']))
{
$query = 'SELECT id, name, image, description, price FROM Tblproducts WHERE id IN ('.implode (',',array_keys($_SESSION['cart'])).') ORDER BY id ASC';
$result = mysql_query($query);
$total = 0;
// debug
if (($result = mysql_query($query)) === false)
echo showSQLError($query,mysql_error(),'Fout met het ophalen van de gebruiker.');
}
elseif (mysql_num_rows($result) == 0)
{
echo 'Er geen resultaat!';
}
else
{
// einde
while($row = mysql_fetch_assoc($result));
{
$totalprice = $_SESSION['cart'][$row['id']] * $row['price'];
klopt frank nu werkt de functie wel maar dit is niet de oplossing , staat er nog steeds
kan het te maken hebben met me sql database primaire sleutel of zo of foute waarde ?
post hem wel even
# Naam Type Collatie Attributen Leeg Standaardwaarde Extra Actie
1 id tinyint(1) Nee Geen AUTO_INCREMENT Primaire sleutel
2 name varchar(50) latin1_swedish_ci Nee Geen
3 description varchar(500) latin1_swedish_ci Nee Geen
4 price decimal(10,0) Nee Geen
5 quantity tinyint(100) Nee Geen
6 image varchar(60) latin1_swedish_ci Nee Geen
7 Catagory varchar(25) latin1_swedish_ci Nee Geen
8 Voorpagina int(11) Nee Geen
9 Nieuw int(11) Nee Geen
Van de tinyint(1) maak je een int(11).
Om je sessie data kloppend te krijgen zal je jouw script(s) af moeten lopen om te kijken waar het fout gaat.
Begin eens met een vardump op $_SESSION['cart']
array(5) { [""]=> NULL [2]=> int(10) [1]=> int(12) [3]=> int(3) [6]=> int(3) }
zie de fout wel zitten "array(5) { [""]=>NULL" maar waar zit deze array ? dat snap ik niet