Tom's Guide > Forum > Programmation > panier boutique ?
Mot :    Pseudo :           
 

Salut.
Voila je suis un train de creer une ptite boutique de vente de tshirt.
Je voudrais stocker les valeurs commandés par l'utilisateur dans un panier.
j'ai essaye le stockage de donnee dans un cookie , et aussi dans une base SQL.
Mais aucun des deux ne me convient. Il ya t'il une solution simple et efficace en php pour stocker des valeurs pendant 24 heures. (j'ai entendu parlé de session PHP ?, est ce la solution ?)

MERCI.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

le mieux, c'est quand même les cookies et la base ; pourquoi cela ne te convient il pas ?

Répondre à szdavid

Utilises osCommerce sinon ;-)

Répondre à bosco@idn

Si la base de données c'est tres pour ce cas!
Mais tu doit mal l'utiliser ou la géré!
Montre voir les tables que tu as créer!

Faudrai passer par une petite analyse rapide ( et oui, le merise c'est chiant, mais c'est utile souvent! )

Répondre à mr_keyser

Citation :

et oui, le merise c'est chiant, mais c'est utile souvent!


Noon, pas ça !!!
je déconnes il a raison l'analyse c'est important.
Je ne l'ai jamais fait sous php, mais en asp, il exite un objet à inclure (qui facilite grandemant la chose), y a pas ça en php ?

Répondre à JB38

Ma table sql est tres simple (et fonctionne):

$table = zao

et dedans il y a 3 champs : produit , taille , quantité.

mais comment faire une session et creer une table pour chaque utilisateur ? et comment detruire la table a la fin de la commande ?

sa me parait beaucoup pour rien , mais peu-etre que c'est la methode à entreprendre.

MERCI.

Répondre à zao

il faudrait faire une table commande, avec les articles et l'id du mec qui commande.
Le mieux, ca serai que tu met precisement ce que tu veu ( ce que tu veu garder, .... ) et on te pondera les tables a creer!
Mais faut etre précis sur ce que tu veux!

Répondre à mr_keyser

En fait ma table ne comporte que 4 elements.
je vends donc des Tshirts:

--------------ma table------------

champ 1) le produit
champ 2) la taille (du tshirt)
champ 3) la quantité voulue
champ 4) un lien (annuler) par produit
-----------------------------------

En fait j'ai deja crée ma table , mais je ne sais pas comment creer une table pour chaque utilisateur et la detruire apres ?

Répondre à zao

il ne faut pas voir ce problème comme ça ; tu as une table qui contient (entre autres)
utilisateur/produit/date

et tu dis d'ignorer toute ligne dont la date est inférieur à la date du jour -X heures (en gros).

Créer une table par utilisateur est beaucoup trop lourd, ingérable et illogique sur le plan relationnel...

Répondre à szdavid

Comment faire ?

Deja pour creer une session utilisateur et inscrire un utilisateur dedans ?

Répondre à zao

Faut pas que tu fasse comme ca!
Je t'ai fait une petite analyse panier pour toi ;-)
ca ferai un truc dans le genre plutot :
http://membres.lycos.fr/keyserstock/panier.gif

Donc il te faudrai 3 tables PRODUIT, UTILISATEUR, et COMMANDE
Et dans la table COMMANDE, à chaque ligne, tu as une commande passe, avec le produit voulu, la quantite, et la date!
Tu peux meme mettre un champs DateLivraison ( ou dans le genre ), et tu garde un historique des commande comme ca!

Bon ca, ca serai pas mal, mais si tu utilise MySQL, je sais pas si ca va etre possible de créer ca, car MySQL gére mal les clé étrangéres, et personnellement, j'ai jamais réussi à mettre 2 clé étrangères sur la meme tables!
Quelqu'un connait bien les clé étrangères avec MySQL ????

Répondre à mr_keyser

Merci pour ta reponse.
J'ai reussi à créer un panier grâce à une base mysql.
Sa fonctionne, mon utilisateur peut s'inscrire puis stocker des produits dans son panier sql à partir d'une boutique.
Maintenant se pose un nouveau probleme.
Comment envoyer par mail le contenu de mon panier mysql ?
Toutes les variables de mon panier sont dans une table mysql (normalemnt j'envois des variables
contenues dans ma page , mais ici les variables ne sont pas dans ma page mais dans ma table sql ????
comment envoyer les variables stockées dans ma table sql ?

MERCI c'est très important pour moi...

Répondre à zao

tu les sélectionnes en php ; ainsi, tu récupères tes variables ; par contre, je sais plus bien mais il se peut que cela te demande de t'assurer que les variables sont récupérés dans la base avant l'affichage

Répondre à szdavid

Tu peux le faire avec les sessions , mais ils ne dureront pas 24heures !
Exemple :

Code :
  1. <? session_start();
  2. foreach($_SESSION['panier'] as $article)
  3. {
  4. echo "Article : ".$article;
  5. } ?>


@+
;-)

Répondre à Riri@IDN

$session
j'ai deja essayé,
Sa ne fonctionne pas car sa enregistre seulement la valeur qui passe dans la page, mais moi je cherche a envoyer toutes les variables contenues dans une table SQL.
par exemple, une connexion a la base de donnéé sql puis envois des variables d'une table via la commande :
mail ();[/color]

Répondre à zao

Bah tu fait une connexion a la base, tu fait un S*ELECT * FR*OM machin_table ..
Et les resultats, dans un mail! et avec mail(), zou, ca part par mail!

Répondre à mr_keyser

Comment ca ?
voici mon code :


<?

include("_connection.php" );
$table="produit";

// sélectionne toutes les fiches de la table $table
$query = "SELEC * FROM $table";
$result = mysql_query($query);

// tant qu'il y a des fiches
while ($val = mysql_fetch_array($result)) { ?>
<table width="75%" border="1">
<td><? echo $val["produit"]; ?></td><td><? echo $val["taille"]; ?></td><td><? echo $val["quantite"]; ?> </td>
<? }
?>mail ( $val["taille"] );
[/color]
sa ne marche pas
Comment faire merci ?

Répondre à zao

Regarde ici
comment on emploi la fonction mail !
@+ ;-)

Répondre à Riri@IDN

merci pour ta reponse.
mais je sais comment on emploi la fonction mail, ce que je ne sais pas c'est comment envoyer les variables contenue dans une table sql....via cette fonction
mail ();

merci

Répondre à zao

bai par exemple , :

Code :
  1. <?
  2. /* tu te connectes , tu affiche les résultats avec mysql_fetch_array ! et par exemple pour : */
  3. $taille = $table['taille'];
  4. mail("nom@domaine.com","Taille",$taille);
  5. ?>

Répondre à Riri@IDN

<?
/* tu te connectes , tu affiche les résultats avec mysql_fetch_array ! et par exemple pour : */
$taille = $table['taille'];
mail("nom@domaine.com","Taille",$taille);
?>;
je ne recois qu'une taille et non pas toutes les tailles contenues dans $table['taille'];
comment faire pour recevoir toute les lignes de la table ?

merci



Répondre à zao

Code :
  1. while ($val = mysql_fetch_array($result)) {
  2. $message = "il faut : ".$val["produit"]." en taille ".$val["taille"]." et il en faut : ".$val["quantite"];
  3. mail("nom@domaine.com","commande", $message);
  4. }



Donc ca boucle sur le resultat, avec le while, et pour chaque ligne de resultat, tu creer un message, avec le produit, taille et quantite ( tu peu rajouter l'acheteur ), et tu envoi par mail, pour chaque commande, un mail!

Répondre à mr_keyser

c'est parfais sa fonctionne, merci.

Mais effectivement je reçois un mail par ligne.
donc si j'ai 10 produits dans mon panier , je recois 10 mails.
comment faire pour recevoir les 10 produits dans
1 seul mail ?
est ce possible ?

merci ...

Répondre à zao

Code :
  1. $message = "";
  2. while ($val = mysql_fetch_array($result)) {
  3. $message = "il faut : ".$val["produit"]." en taille ".$val["taille"]." et il en faut : ".$val["quantite"]."/n";
  4. }
  5. mail("nom@domaine.com","commande", $message);



Il faut inscrementer une variable ( $message ) avec chaque ligne de produit, et à la fin ( donc sorti de la boucle ), on envoi un mail avec cette variable!

Répondre à mr_keyser

salut j'ai pas tout lu les reponse à ce topics mais j'ai fait un script de panier numérique utilisant les sessions
tu pouras le trouver ici
ca peut surement t'aider

Répondre à Zer0@IDN

Citation :


Mais effectivement je reçois un mail par ligne.
donc si j'ai 10 produits dans mon panier , je recois 10 mails.
comment faire pour recevoir les 10 produits dans
1 seul mail ?
est ce possible ?


Bai, dans la while, tu fais par exemple un tableau qui enregistre la valeur :

Code :
  1. $panier = array(); //avant la while
  2. $i = 0;
  3. //dans la while :
  4. $panier[i] = $valeur; //valeur est-ce que tu veux
  5. $i++;
  6. //après la while :
  7. $message="";
  8. foreach($panier as $mes)
  9. {
  10. $message+= $mes."<br>";
  11. }


Voilà, comme ça par exemple ! :-D
@+ ;-)

Répondre à Riri@IDN

Merci pour ta reponse.
Mais je n'arrive pas a recuperer les variables, voici mon code (j'y ai rajouté ton code):<?
//on affiche les produits

$table="boutique";

// sélectionne toutes les fiches de la table $table
$query = "SELECT * FROM $table";
$result = mysql_query($query);
$panier = array(); //avant la while
$i = 0;
// tant qu'il y a des fiches
while ($val = mysql_fetch_array($result)) { $panier[i] = $valeur; //valeur est-ce que tu veux
$i++; ?>
<table width="75%" border="1">
<td><? echo $val["produit"]; ?></td><td><? echo $val["taille"]; ?></td><td><? echo $val["quantite"]; ?> </td>
<? }
$message="";
foreach($panier as $mes)
{
$message+= $mes."<br>";
}

?>
</table>
<?
if (isset($_GET["commander"])) {mail("webmaster@polygone-3d.com","commande", "salut: $message" );}

?>[/code]

POURAIS TU M'AIGUILLER ?
MERCI BEAUCOUP[/color]

Répondre à zao

Qu'est-ce que tu veux envoyer comme colonne par mail pour chaque champ ?
@+ ;-)

Répondre à Riri@IDN

je veux envoyer les colones :

- PRODUIT

-TAILLE

-QUANTITE
......................................................................................

je voudrais recevoir tous les produits du champ -PRODUIT, idem pour les colones - TAILLE et
-QUANTITE [/color]

Répondre à zao

Code :
  1. <?
  2. //on affiche les produits
  3. $table="boutique";
  4. // sélectionne toutes les fiches de la table $table
  5. $query = "SELECT * FROM $table";
  6. $result = mysql_query($query);
  7. $panier = array(); //avant la while
  8. $i = 0;
  9. // tant qu'il y a des fiches
  10. while ($val = mysql_fetch_array($result)) {  //valeur est-ce que tu veux
  11. ?>
  12. <table width="75%" border="1">
  13.   <td><? echo $val["produit"]; ?></td>
  14. <td><? echo $val["taille"]; ?></td>
  15. <td><? echo $val["quantite"]; ?> </td>
  16.       <?
  17. $panier[$i] = $val["produit"]."  ".$val["taille"]." ".$val["quantite"];
  18. $i++;
  19. }
  20.       $message="";
  21. foreach($panier as $mes)
  22. {
  23. $message+= $mes."<br>";
  24. }
  25. ?>
  26. </table>
  27. <?
  28. if (isset($_GET["commander"])) {mail("webmaster@polygone-3d.com","commande", "salut: $message" );}
  29. ?>

Répondre à Riri@IDN

merci encore pour ta reponse.
J'ai remplacé mon code par ton code.

Mais dans mon mail, je recois juste ca : <br>

pourquoi ? je comprend pas.
(c'est bien $message que je dois récuperer ?)

ou est l'erreur, en as tu une idée ?

merci...

Répondre à zao

Essaie ça :

Code :
  1. <?
  2. //on affiche les produits
  3. $table="boutique";
  4. // sélectionne toutes les fiches de la table $table
  5. $query = "SELECT * FROM $table";
  6. $result = mysql_query($query);
  7. $panier = array(); //avant la while
  8. $i = 0;
  9. // tant qu'il y a des fiches
  10. while ($val = mysql_fetch_array($result)) {  //valeur est-ce que tu veux
  11. ?>
  12. <table width="75%" border="1">
  13. <td><? echo $val["produit"]; ?></td>
  14. <td><? echo $val["taille"]; ?></td>
  15. <td><? echo $val["quantite"]; ?> </td>
  16. <?
  17. $panier[$i] = $val["produit"]."  ".$val["taille"]." ".$val["quantite"];
  18. $i++;
  19. }
  20. $message="";
  21. foreach($panier as $mes)
  22. {
  23. $message = $message.$mes."<br>";
  24. }
  25. ?>
  26. </table>
  27. <?
  28. if (isset($_GET["commander"])) {mail("webmaster@polygone-3d.com","commande", "salut: $message" );}
  29. ?>


Mais ça va peut être être très con , mais est-ce que dans ce code , tu t'es connecté à mysql ou est-ce que la bdd contient quelques choses ?
@+

Répondre à Riri@IDN

BRAVO !!!

sa fonctionne à merveille.

Apparement sa marche depuis que tu as changé cette ligne de commande:

{
$message = $message.$mes."<br>";
}


EN TOUT CAS SA TOURNE , c'est vraiment simpa de ta part de t'être attardé sur mon probleme, t'es vraiment un tueur RIRI.
:pan:
MERCI ENCORE....
LE ZAO

Répondre à zao

Lol :-D :-D ,
De rien !
@++ ;-) :-D

Répondre à Riri@IDN

J'ai essayé le code envoyé par riri.
J'ai bien le resultat de la requete sql qui s'affiche ca marche nickel mais le probleme c'est que je recois pas d'émail. Je n'ai meme pas de bouton commander ou envoyer ... est-ce normal que dois-je faire. Merci

Répondre à pobrouwers

jen ai un meilleur mais va zy fé moi dé prix et des tee shirt gratuit aprè on verra
mais jespere cé pa des tee shirt malabar ou mouseline

Répondre à Narvalo@IDN
Tom's Guide > Forum > Programmation > panier boutique ?
Aller à :

Il y a 1598 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens