Inserer les valeurs d'un panier dans une table sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inserer les valeurs d'un panier dans une table sql

par arkhon21 » 11 juin 2009, 19:30

En regardant ta solution, je me suis demandé à quoi servaient tes INPUT de type hidden :

Code : Tout sélectionner

<input type="hidden" name="libelleProduit" value=<?php echo $_SESSION['panier']['libelleProduit'][$i];?> />
Comme tu as toutes tes infos dans ta variable de session,
tu n'as pas besoin de les faire passer d'une page à une autre dans une variable post.
Les as-tu conservés ?

Bonne journée,
Fred
En fait, j'ai même pas penser a les retirer!

par micetf » 11 juin 2009, 07:42

En regardant ta solution, je me suis demandé à quoi servaient tes INPUT de type hidden :

Code : Tout sélectionner

<input type="hidden" name="libelleProduit" value=<?php echo $_SESSION['panier']['libelleProduit'][$i];?> />
Comme tu as toutes tes infos dans ta variable de session,
tu n'as pas besoin de les faire passer d'une page à une autre dans une variable post.
Les as-tu conservés ?

Bonne journée,
Fred

par arkhon21 » 10 juin 2009, 23:08

J'ai réussi, en fait il fallait les $_SESSION dansINSERT INTO. J'ai aussi crée une table séparer pour cela

for ($i=0; $i<count($_SESSION['panier']['libelleProduit']); $i++) {


mysql_query("INSERT INTO $tbl_name2 VALUES ('','$order_number','$myusername','".$_SESSION['panier']["libelleProduit"][$i]."','".$_SESSION['panier']["qteProduit"][$i]."','".$_SESSION['panier']["prixProduit"][$i]."','$total','$payment_','$date_hour') ") or die(mysql_error());  


}

par arkhon21 » 09 juin 2009, 09:55

Attention, il me semble qu'il y a un problème ici :

Pour chaque article, tu as un input de ce type :

Code : Tout sélectionner

<input type="hidden" name="libelleProduit" value="<? echo "".$_SESSION['panier']['libelleProduit'][$i]."";?>">
qui va se traduire par un seul $_POST['libelleProduit'] sur la page appelée par ton formulaire
alors que tu devrais en avoir un pour chaque article.

Je verrais alors plutôt un input de ce style :

Code : Tout sélectionner

<input type="hidden" name="libelleProduit[<?php echo $i; ?>]" value="<?php echo "".$_SESSION['panier']['libelleProduit'][$i]."";?>">
Que tu pourras récupérer dans un $_POST['libelleProduit'][$i] et pour chaque $i, il faudra faire un INSERT INTO dans ta table.

Et pour finir, si j'ai bien compris ce que tu as fait, tu as également un problème de conception de la BDD, puisque tu vas avoir les coordonnées du client (firstname, lastname,...) pour chaque article.

Fred
Je me demande si il faudrait pas que je serialize toutes les données libelleProduit pour pouvoir les insérer dans un champs unique.

par micetf » 08 juin 2009, 19:51

Attention, il me semble qu'il y a un problème ici :

Pour chaque article, tu as un input de ce type :

Code : Tout sélectionner

<input type="hidden" name="libelleProduit" value="<? echo "".$_SESSION['panier']['libelleProduit'][$i]."";?>">
qui va se traduire par un seul $_POST['libelleProduit'] sur la page appelée par ton formulaire
alors que tu devrais en avoir un pour chaque article.

Je verrais alors plutôt un input de ce style :

Code : Tout sélectionner

<input type="hidden" name="libelleProduit[<?php echo $i; ?>]" value="<?php echo "".$_SESSION['panier']['libelleProduit'][$i]."";?>">
Que tu pourras récupérer dans un $_POST['libelleProduit'][$i] et pour chaque $i, il faudra faire un INSERT INTO dans ta table.

Et pour finir, si j'ai bien compris ce que tu as fait, tu as également un problème de conception de la BDD, puisque tu vas avoir les coordonnées du client (firstname, lastname,...) pour chaque article.

Fred

par arkhon21 » 08 juin 2009, 19:25

Modération :
arkhon21, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

OK, ca sera fait.

par albat » 08 juin 2009, 19:14

Modération :
arkhon21, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

par arkhon21 » 08 juin 2009, 19:12

Puis il te suffit de récupéré
$_POST['libelleProduit']
C'est fait, mais le résultat dans la table, c'est que ca n'insere soit rien du tout soit array

Pour cela, j'utilise le code suivant:
      <?php
 
      session_start();
  
      require("conf.php");
   
       
 
      mysql_connect("$host", "$username", "$password")or die("cannot connect");
   
      mysql_select_db("$db_name")or die("cannot select DB");
   
       
 
      $order_number=$_POST['order_number'];
  
      $myusername=$_SESSION['myusername'];
  
      $libelleProduit=$_POST['libelleProduit'];
  
      $qteProduit=$_POST['qteProduit'];
  
      $prixProduit=$_POST['prixProduit'];
  
      $total=$_POST['total'];
  
      $firstname=$_POST['firstname'];
  
      $lastname =$_POST['lastname'];
  
      $address =$_POST['address'];
  
      $city=$_POST['city'];
  
      $state=$_POST['state'];
  
      $ZIP =$_POST['ZIP'];
  
      $country =$_POST['country'];
  
      $phone=$_POST['phone'];  
  
      $payment =$_POST['payment'];  
 
      $date_hour=(date("Y-m-d H:i:s"));

       

       

      mysql_query("INSERT INTO $tbl_name2 VALUES ('','$order_number','$myusername','$libelleProduit','$qteProduit','$prixProduit','$total','$firstname','$lastname','$address','$city','$state','$ZIP','$country','$phone','$payment','$date_hour') ") or die(mysql_error());  

      session_register("myusername");
  
      session_register("mypassword");
  
      header("location:transc_.php");


       

      ?>

Toutes les valeur s'insèrent sans problèmes  SAUF CELLE DE LA SESSION. C'est à dire 

      $libelleProduit=$_POST['libelleProduit'];
  
      $qteProduit=$_POST['qteProduit'];
  
      $prixProduit=$_POST['prixProduit'];
La ou dans la table, il y a soit un espace vide soit le mot array

par dunbar » 08 juin 2009, 17:49

<input type="hidden" name="libelleProduit" value="<? echo "".$_SESSION['panier']['libelleProduit'][$i]."";?>">

pour ensuite l'insérer dans une table avec un INSERT INTO

Quelqu'un aurait il une idée? Merci de vos réponses
Et comme ceci :?:
<input type="hidden" name="libelleProduit" value=<?php echo $_SESSION['panier']['libelleProduit'][$i];?> />
Puis il te suffit de récupéré
$_POST['libelleProduit']

par arkhon21 » 08 juin 2009, 17:36

OK, je vais être plus explicite:

J'ai quelques difficultés pour insérer les données d'un panier dans une table

car je peux afficher le panier avec le code suivant:

<?php   

$nbArticles=count($_SESSION['panier']['libelleProduit']);
  if ($nbArticles <= 0)
   echo "Votre caddie est vide";
  else
  {
   for ($i=0 ;$i < $nbArticles ; $i++)
   {
    echo "".($_SESSION['panier']['libelleProduit'][$i])."<br>";

   }
     
    }
   

;?>

MAIS, ce que je n'arrive pas a faire, c'est récupérer les données de la session
($_SESSION['panier']['libelleProduit'][$i])
dans un champs
<input type="hidden" name="libelleProduit" value="<? echo "".$_SESSION['panier']['libelleProduit'][$i]."";?>">
pour ensuite l'insérer dans une table avec un INSERT INTO

Quelqu'un aurait il une idée? Merci de vos réponses

par stopher » 08 juin 2009, 16:23

Salut ,

avec des requetes mysql !

Ch.

Inserer les valeurs d'un panier dans une table sql

par arkhon21 » 08 juin 2009, 16:17

Bonjours,

Comment peut on insérer les valeurs d'un panier php dans une table SQL

Merci