begin process at 2012 05 31 09:17:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

récuparation de données d'un formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

récuparation de données d'un formulaire

mardi 25 novembre 2008 à 16:28:11 | récuparation de données d'un formulaire

f0nzy

Bonjour à tous,

Je travaille sur un script et je calle à la fin. Je m'explique, je réalise pour mon site, un système de commande en ligne.
J'ai créé un formulaire à partir d'une base de donnée, avec une case ou on insere la quantité à commander.
Ensuite, je dois donc récupérer les informations envoyées. Cependant, j'ai un petit conflit, il m'affiche le prix de la quantité plutot que du compteur. Exemple: je commande 3 pièces du produit numéro 6 et il m'affiche le prix du produit numéro 3 au lieu du 6.
<? include "connexion.php";
$quantite = $_POST['quantite'];
$compteur = $_POST['compteur'];

foreach($quantite as $compteur){
$calcul=mysql_query("SELECT * FROM produit WHERE id='$compteur'");
while ($donnees2 = mysql_fetch_array($calcul) )
echo 'Récapitulatif :'.$compteur.' x '.$donnees2['prixht'];
}?>

Merci

mardi 25 novembre 2008 à 18:22:32 | Re : récuparation de données d'un formulaire

TropNul

Bonjour f0nzy

Le problème vient peut-être du foreach. Je ne comprends pas pourquoi tu l'utilises dans ce cas. Pour rappel, la  fonction foreach est utilisé pour boucler sur un array. Or là, il ne me semble pas que $quantite soit un array. Pire, tu copies la valeur de $quantite dans la valeur de $compteur, d'ou ton erreur d'affichage ;).

Ton code deviendrait donc (pour un seul produit)

<?php
include "connexion.php";
$quantite = $_POST['quantite'];
$compteur = $_POST['compteur']; // je présume que $compteur et l'id du produit dans ta bdd
$calcul=mysql_query("SELECT * FROM produit WHERE id='$compteur'"); // d'ou cette requête
$donnees2 = mysql_fetch_array($calcul); // et normalement, il y un id unique pour un produit !? donc un seul résultat
echo 'Récapitulatif :'.$quantite.' x '.$donnees2['prixht']; // donc finalement un seul affichage pour un produit
?>

Si par contre, tu veux réaliser un code pour gérer plusieurs produits sélectionnés/entrés dans le formulaire avec leurs quantités respectives, alors il faut procéder autrement, avec des "name" distincts pour chaque valeur du formulaire dans le cas de champ de texte.

Si j'ai mal compris ton but, pourrais-tu réexpliquer stp ?

Cordialement
mercredi 26 novembre 2008 à 12:00:44 | Re : récuparation de données d'un formulaire

f0nzy

En fait, oui, je dois gérer plusieurs produits. J'ai une table(produit) dans ma base de données dans laquelle j'ajoute ou je supprime des produits.
Sur la page du formulaire, j'affiche tous les produits de ma table et je rajoute un champ quantité à côté de chacun.

Le code du formulaire:
<? include "connexion.php";
$compteur = 0;
$reponse2 = mysql_query("SELECT * FROM produit");
while ($donnees2 = mysql_fetch_array($reponse2) )
  {
<tr><td><? echo $donnees2['id'];?> 
  <td><?php echo $donnees2['nom']; ?>
  <td><?php echo $donnees2['prixht']; ?> ¤      
        <td><input type="text" name="quantite[]" id="quantite[]" value="" size="5" /><br />
        <?php $compteur=$compteur+1;?>
        <input type="hidden" value="<?php echo $compteur;?>" name="compteur" id = "compteur" />
        <?
  }
  mysql_close();?>
J'ai fait un tableau avec mon champ quantité pour avoir plus facile pour récupérer mais c'est justement là que ca coince, comme tu as pu le voir. La variable compteur correspond à mon id, comme tu l' as dit.

Merci de ton interet en tout cas
jeudi 27 novembre 2008 à 07:40:37 | Re : récuparation de données d'un formulaire

TropNul

Réponse acceptée !
Pour récupérer les données transmises sous format 'tableau' via des formulaires, il faut faire comme pour les $_FILES.

Donc, dans ce cas, ça sera du genre :

$_POST['quantite'][0]
$_POST['quantite'][1]
$_POST['quantite'][2]
etc ...

Plus simplement, tu peux faire

foreach ($_POST['quantite'] as $key => $val) {
    if ($val != NULL) {
        $quantite=$val;
    }
}

En ce qui concerne le 'compteur', dans le formulaire, tu lui attribues toujours le même name bien que la valeur soit différente. Tu devrais faire en sorte que pour lui aussi, ça soit un name différent à chaque fois, avec un autre tableau par exemple.

Donc en toute logique, pour récupérer ensuite ces données, tu pourrais faire ainsi :

foreach ($_POST['quantite'] as $key => $val) {
    if ($val != NULL) {
        $quantite=$val;
        $id=$_POST['compteur'][$key];
    }
}

Petit détail : Tu transmets à mon avis une valeur peu utile, le compteur. Tu pourrais tout aussi bien transmettre directement l'id. Exemple :

<?php
include "connexion.php";
$reponse2 = mysql_query("SELECT * FROM produit");
while ($donnees2 = mysql_fetch_array($reponse2)) { ?>
    <tr><td><?php echo $donnees2['id']; ?> 
    <td><?php echo $donnees2['nom']; ?>
    <td><?php echo $donnees2['prixht']; ?> ¤      
    <td><input type="text" name="quantite[]" id="quantite[]" value="" size="5" /><br />
     <input type="hidden" value="<?php echo $donnees2['id']?>" name="identificateur[]" id = "identificateur[]" />
     <?php
}
mysql_close();
?>

Et ensuite, tu récupères comme suit

foreach ($_POST['quantite'] as $key => $val) {
    if ($val != NULL) {
        $quantite=$val;
        $id=$_POST['identificateur'][$key];
    }
}

En espérant que cela te serve.

De rien (car, quand j'aide une personne ça m'aide aussi à apprendre encore plus)

Cordialement
jeudi 27 novembre 2008 à 17:34:28 | Re : récuparation de données d'un formulaire

f0nzy

Merci beaucoup, malheureusement j'ai seulement 15 minutes sur l'ordi aujourd'hui, mais j'essierais ce que tu me conseilles dés demain
Merci
lundi 1 décembre 2008 à 09:52:01 | Re : récuparation de données d'un formulaire

f0nzy

Un grand merci TropNul


Cette discussion est classée dans : formulaire, compteur, produit, quantite, récuparation


Répondre à ce message

Sujets en rapport avec ce message

Mise à jour d'un champs bd avec 1 form [ par laubro ] Bonjour,Quel pourrait être la formule pour mettre à jour un champs de quantité via un formulaire:champs : 3envoi via formulaire d'un chiffre ex :1comm Formulaire et récuparation de valeurs [urgent] [ par Kbitnik ] bonjour a tous, j'ai un petit probléme, je m'explique :g un formulaire dan lekél g 2 champs et je soumé ce formulaire :<input formulaire, compteur de réponses, base de donnée. [ par decaPeter ] Bonjour :) ca fait plusieurs jours que je m'arache les cheveux à essayer de faire un mini moteur de recherche qui requete dans une base de donnée SQL Formulaire PHP dynamique !! [ par titben ] Bonjour à tous !!Alors là ... je commence à me prendre grave la tête avec mon code, alors je fais appel à votre savoir à tous.Comme vous allez le voir impossible modifier quantité du dernier article d'un panier [ par oceane751 ] bonjour à tous, mon probleme est le suivant : j'ai mon panier, et je ne peux modifier que la quantite du 1er article et pas les autresà quoi ceci est Récupération de données d'un formulaire [ par ArnaudT62 ] Bonjour, Voilà je veux créer un catalogue de produit avec envoie par la suite. Dans un premier temps on choisit le produit avec la quantité, pour cela probleme de suppression d'article dans un caddie [ par oceane751 ] bonjour, je suis en train de creer un caddie virtuel et j'ai un petit probleme au niveau de la suppression d'article dans ce caddie voici le code qui formulaire + compteur [ par babaslow ] Bonjour, J'ai un problème de débutant avec ce script : [code] <?php $commentaire = $_POST['commentaire']; $commentaire.="*"; $cpt = 1; if ($co formulaire + compteur [ par babaslow ] C'est bon, c'est résolu. @+++ suppression d'article d'un panier [ par justine75 ] bonjour!petit problème lors de la suppression d'article dans mon panieron m'a aidé mais ça ne marce pas... et je ne comprends pas vraiment pourquoi...


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales