select where et plusieurs variables

Répondre
tapi
le 31/10/2007 à 17:05
tapi
Bonjour à tous,
J'ai un problème qui me tient depuis plusieurs semaines. J'ai une base avec une colonne "nom de client" et dix colonnes représentant des produits et dans ces colonnes des 0 ou des 1 suivant que mes clients détiennent (1) ou ne détiennent pas (0) ces produits.
J'ai à coté un formulaire ou j'entre le nom du client et mes dix lignes de produits avec chacune deux cases à cocher (pour détient ou ne détient pas).
Auriez-vous une idée pour le script d'extraction dans la base et surtout faut-il à chaque fois deux variables par produit ou une variable sous forme de tableau ?
Merci de l'aide.
i M@N
le 31/10/2007 à 18:44
i M@N
Hello.

Si ce sont toujours les mêmes 10 produits tu peux faire une colonne client, une colonne produits.

Ensuite dans ton formulaire tu auras un champ pour le nom du client et 10 champs pour tes 10 produits.
Dans chaque champ produit tu mets 1 checkbox avec un name="choix1...10" (cochée = 1, non cochée = 0).

Quand ton client valide ça envoie les données sur un page de traitement en $_GET ou $_POST et cette page reçoit 11 variables : 1 pour le nom du client, 10 pour les produits.
Donc tu récupères normalement $client et tes 10 $choix.

Ensuite tu fais une concaténation des 10 variables $choix séparées par un point :
<?php
$produits = '.'.$choix1.'.'.$choix2'.'...'.'.$choix10;
?>

(ce qui donne une chaine comme 1.0.0.1...1 par exemple).

Tu insères $client et $produits dans ta table.
Pour récupérer les données tu te sers de la fonction explode :
<?php
$tableau_produits = explode('.',$produits);
?>

et tu obtiens un tableau $tableau_produits que tu peux exploiter sans souci :
<?php
for($i = 0;$i < count($tableau_produits)-1;$i++)

{
echo $tableau_produits[$i];
}
?>


@+...
One Love, One Heart, One Unity.
tapi
le 02/11/2007 à 11:33
tapi
merci de ta réponse, en effet ça me va pas mal.
Je vais bosser dans cette direction.
Merci à toi.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours