Filtrer une requete avec une variable array
Bonjour,
J'ai ce code qui va créé un panier.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| <?php
// caddie_add.php... sert à ajouter un produit...
session_start();
if(isset($_GET['id']))
{
// si on a spécifié un produit anisi qu'une quantité :
// on vérifie si un panier existe déja...
if(session_is_registered('panier') && is_array($panier))
{
// si le panier existe déja...
$nbprod = count($panier);
// on compte le nombre d'éléments dans le panier...
for($i=0;$i<$nbprod;$i++)
{
// on fait une boucle qui va passer en revue chaque produit du panier
// pour voir si le produit que l'on veut rajouter existe déja
if($panier[$i]['id'] == $_GET['id'])
{
// le produit existe...
$prodin = "true";
// inscrit dans une variable que le produit existe...
$prodline = $i;
// et on précise aussi quel est son emplacment dans le caddie
}
}
if(isset($prodin) && $prodin == "true")
{
// si le produit existe déja...
// ...la quantité précédente est effacée...
array_splice($panier,$prodline,1);
// ...pour laisser place à celle qui le client vient de rajouter...
array_push($panier,$_GET['id']);
}
else
{
// sinon on rajoute le produit dans le panier tt simplement...
array_push($panier,$_GET['id']);
}
header("Location: panier.php");
// on peut faire une redirection vers une page qui va faire la liste de tous les produits...
}
else
{
// si le panier n'existe pas...
session_register('panier');
// on le créer...
$panier = array ();
// on rajoute le produit et la quantité...
array_push($panier,$_GET['id']);
// le panier à été crée...
header("Location: panier.php");
// on peut faire une redirection vers une page qui va faire la liste de tous les produits...
}
}
else
{
// les variable prod et qtte n'existent pas...
header("Location: index.php");
}
?> |
Jai ce code qui va afficher le panier
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| connectionBDD();
$liste = "SELECT id, titre FROM films WHERE id =$panier ";
$hliste = @mysql_query($liste);
while($resultliste = mysql_fetch_array($hliste) )
{
echo $resultliste['titre'];
}
deconnectionBDD(); |
Ce que je voudrais cest filtrer les resultats en fonction des elements du panier dans cette requete:
Code:
$liste = "SELECT id, titre FROM films WHERE id =$panier ";
Mais comme panier comprends plusieurs valeurs, ca ne marche pas.
Jai deja effectué des recherches mais je nai rien trouvé qui maide.
MErci
Re: Filtrer une requete avec une variable array
Bonjour,
Tu envoies au serveur MySQL une requête du genre
Code:
SELECT id, titre FROM films WHERE id =<un tableau PHP>
Bien entendu MySQL ne peut pas comprendre cette requête (d'ailleurs il te suffira de faire un echo $liste pour voir que quelque chose ne tourne pas rond).
Une requête valide serait :
Code:
SELECT id, titre FROM films WHERE id =1 OR id = 2 OR id = 3 OR ...
ou bien
Code:
SELECT id, titre FROM films WHERE id IN (1, 2, 3, ...)
Il te faut donc manipuler ton tableau en PHP afin de construire et envoyer une requête SQL de ce type...