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';

hoop dat iemand me kan helpen

gr jordy
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

snap er niks van wat doe ik fout


<?php
array_filter($_SESSION['cart'];
/*
echo '<h3>inhoud van $_SESSION[\'cart\']:</h3>';
echo '<pre>';
print_r($_SESSION['cart']);
echo '</pre>';
*/


// 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'];

?>
Er mist een ) in eddy,s voorbeeld op regel 3 net voor de ;
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

Geen idee welke min een max waarde een tinyint(1) heeft maar dat is niets iets wat je moet toekennen aan een AI kolom.

Maar je legt de basis verkeerd, alle trim en array filter dingen zijn workarrounds, je moet er voor zorgen dat je sessie data klopt.
hoe krijg ik me sessie data kloppend ben erg nieuw in php en sql en wat kan ik het best met tinyin(1)doen
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
dit is wel typisch een key "" en een waarde NULL ...
ik ga eens testen of ik dat ook voor elkaar kan krijgen


[size=xsmall]Toevoeging op 30/08/2013 22:53:24:[/size]


<?php

$a = array();

$a[''] = 'NULL';

print_r($a);

?>



[size=xsmall]Toevoeging op 30/08/2013 22:56:21:[/size]

Als je het bovenstaande draait dan zie je dat het inderdaad mogelijk is.

Ergens in jouw script, Jordy, wordt aan een lege key de string 'NULL' toegekend. dat is waardoor het probleem ontstaat.

[size=xsmall]Toevoeging op 30/08/2013 23:01:05:[/size]

In iedergeval kun je het dan oplossen door

<?php
unset($_SESSION['']);
?>

te doen voordat je de query uitvoert. Echter zou ik daar niet tevreden mee zijn en zou ik gaan uitzoeken waarom die lege key in de array komt.
Bedankt stond inderdaad een lege key in me script nu werkt hij perfect bedankt allemaal

Reageren