Probleme d'array php

draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010 - 19 mars 2010 à 11:23
draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010 - 20 mars 2010 à 18:19
salut à tous voila j'expose mon petit probleme qui doit doit etre 1 cas d'ecole pour vous:
je construit 1 panier mon probleme se porte sur la quantite

j'ai mis 1 champs texte


auparavant j'ai declarer les valeurs
$nombre = $_POST["qte"];
$quantite = array ($nombre) ;
je passe les details du code pour les produits du panier qui s'affiche bien.
lorsque je vais sur la page "resultat"
foreach($quantite as $value) { echo $value }
il m'affiche bien le chiffre taper mais si la selection porte sur 4 produits les 4 produits aurons
la meme valeur que la derniere taper dans le champs text.

8 réponses

deadhand Messages postés 152 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 27 août 2010 3
19 mars 2010 à 13:46
Alors la , il faut que tu explicites plus, montre plus de partie de ton code car sinon, personne ne pourra t'aider avec une description aussi succinte !
0
draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010
19 mars 2010 à 14:11
ok desoler voici ma partie "panier"
if (isset($_SESSION["caddie"]))
{
$caddie = $_SESSION["caddie"];
}
else
{
$caddie = array();
}

if (isset($sup))
{
unset($caddie["$sup"]);
}
$quant = $_POST["qte"];
$quantite = array ($quant) ;
Intitulé

,
Quantité ,
Supprimer

<?php
while($var = each($caddie))
{
$sql = "SELECT * FROM piece WHERE piece.IDProduit='".$var[0]."'";
$sql = mysql_db_query($base,$sql);
while ($site=mysql_fetch_array($sql))
{

echo "<form action=\\"commande.php\\" method=\\"post\\" style='margin-top: 0px; margin-bottom: 0px'>

</td>


</td>
</tr>";
}
}
echo"<center> Demande de devis </td>Commande , </td>
<form action =\"commande.php\" name='panier' method=\"post\" style='margin-top: 0px; margin-bottom: 0px'>

</form>
";

voici ma partie "commande"

while($var = each($caddie))
{
$sql1 = "SELECT piece.IDProduit,piece.LibelleProd, piece.RefProd FROM piece WHERE piece.IDProduit='$var[0]'";
$sql1 = mysql_query($sql1);
$test = mysql_num_rows($sql1);
while ($site=mysql_fetch_array($sql1))
{

$quant = $_POST['qte'];
$quantite = array ($quant) ;
$devis = $_SESSION["devis"];
foreach($quantite as $value) {

echo"$site[LibelleProd],
$site[RefProd],
$quantite --> $value --> $qte
";
}
0
draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010
19 mars 2010 à 14:12
j'espere que ca suffira
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
20 mars 2010 à 16:15
Bonjour,
Si j'ai bien compris tu as plusieurs fois

dans ton formulaire et tu voudrais récupérer la valeur de chaque input.
Il est normal que tu ne récupère que la dernière quantité puisque tes champs ont le même "name".
Pour résoudre les problème du peut avoir des champs dont le name est "qte1", "qte2" ... ou le nombre suivant qte est généré par le php lors de l'affichage de la page.
Pour les checkbox on peut définir des tableaux ' ex : name="check[]" ' mais je crois que ça ne marche que pour les checkbox.

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010
20 mars 2010 à 17:16
merci pour ta reponse mais en fait je peux pas nommer par qte1, qte2 car si le client choisi par exemple 3 produits de la base de donnée il aura 3 champs "qte" genere avec le produit et sa reference
g essayer de mettre name="qte[]" ca fonctionne mais a au moment du post sur la 3 eme page (que je n'ai pas mis car c 1 post dans la bdd) un message d'erreur foreach apparait (Warning: Invalid argument supplied for foreach())
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
20 mars 2010 à 17:26
Tu peux très bien mettre qte0, qte1, qte2 ..., c'est ce que j'essayais d'expliquer en te disant que "le nombre suivant qte est généré par le php"
Exemple :

$i=0;
while ($site=mysql_fetch_array($sql))
{
echo "";
$i++;
}

Ce qui me fait d'ailleurs remarquer un autre problème dans ton code, ta balise "<form>" semble être dans la boucle while donc présente plusieurs fois.
0
draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010
20 mars 2010 à 17:34
ok j'avais pas compris merci je vais essayer
merci
0
draak3 Messages postés 8 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 20 mars 2010
20 mars 2010 à 18:19
bon bin je doit etre trop mauvais mais ca ne m'affiche rien dans ma page commande
0
Rejoignez-nous