Autor Zpráva
Bohuš
Profil *
zdravicko porsim vsecky ochotne o pomoc s mysql dotazem, protoze uz si fakt nevim rady, porad mi to vyhazuje chybu:
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 'IN() ORDER BY cena ASC' at line 1
jenze ja ji nikde nevidim :-( prosim o pomoc kdo chybu vidite pomozte diky dotaz:

$dotaz = 'SELECT * FROM zbozi IN(';
foreach ($_SESSION['kosik'] as $klíč => $hodnota) {
$dotaz.=$klíč.',';
}
$dotaz = substr($dotaz,0,-1).') ORDER BY cena ASC';
$vysl_kos = mysql_query($dotaz)or print mysql_error();
Tomashek
Profil
Proč tak složitě?
1) zřejmně Vám chybí klauzule WHERE (např.
WHERE id IN(...)

2) Předpokládám, že $_SESSION['kosik'] je pole, proto si vytvořím dotaz
$dotaz = 'SELECT * FROM zbozi WHERE neco IN('.implode(',',$_SESSION['kosik']).') ORDER BY cena ASC';


Nezkoušel jsem to, tak nevím zda je to funkční.
Bohuš
Profil *
Diky za rychlou reakci, jinak to asi bude ono pokousim se upravit skript na zobrazeni zbozi v kosi, problem je v tom ze WHERE neco IN v dotazu nepotrebuju.
Bohuš
Profil *
No tak jsem zas napsal kravinu, protoze where neco in zrejme porebuje dotaz, nicmene Vas dotaz taky nefunguje nevypise zadne hodnoty v kosi. Myslim ze problem je v tom, ze kdyz echem vypisu implode(',',$_SESSION['kosik']) tak se vypise jen jedna hodnota a to hodnota mnozstvi (nevim proc), echo session kosik vypise array
Tomashek
Profil
Tudíž je asi špatné to SESSION ..implode jenom vypíše hodnoty pole oddělené čárkami, což v IN( ) má být.
Bohuš
Profil *
No tak asi to vypada ze je to tim, a uz asi vim proc tenhle skript ma pridavat do sessions id a mnozstvi zbozi (podle ucebnice z ktere pochazi ) ale kdyz si vypisu implode session kosik tak jsem zjistl ze jedine co pridava tak mnozstvi vzdy o 1+ pak si kupte ucebnici...
mimochodem vedel by nekdo jak ho upravit aby opravdu pridaval id a pocet?

if (is_numeric ($_GET['id_zbozi'])) {



if (isset ($_SESSION['kosik'][$id_zbozi])) {
$množství = $_SESSION['kosik'][$id_zbozi] + 1;
} else {
$množství = 1;
}


$_SESSION['kosik']==$_SESSION['kosik'][$id_zbozi],$množství;


echo '<p>Zboží bylo přidáno do Vašeho nákupního košíku.</p>';


} else {
header ("Location: http://". $_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF']). "/index.php");
exit();
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: