Recalcul caddy selon qte, étrange ???

kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006 - 25 juin 2005 à 12:37
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 27 juin 2005 à 14:44
Kida

Boujour,

Après avoir beaucoup galèré pour modifier la qte dans mon caddy, enfin il me recalcule bien mon caddie ,mais pas ligne par ligne il m'ajoute tout quand je choisi la dernière qte du dernier produit listé dans le caddy.

Si un codeur super doué peut me dire quelque erreur j'ai fait pour qu'il ne me cacul pas ligne par ligne.

Merci beaucoup !!!

Voici mon code:

if(!isset($_SESSION['caddie']))
{
echo "Votre caddie est vide !";
}
else
{
require_once('connexion.php');
foreach($_SESSION['caddie'] as $_SESSION['caddie']['prod'])
{
if(!empty($_POST))
{
$t=$_POST['t'];
for($i=0;$i<count($_POST['id']);$i++)
{
$id=$_POST['id'][$i];
$qte=$_POST['qte'];
}
}
else
{
$t=$_GET['table'];
}
$sql='Select id,ref,nom,prix FROM '.$t.' WHERE id="'.$_SESSION['caddie']['prod'].'"';
$res=mysql_query($sql) or die ('Erreur SQL!'.$sql.mysql_error());
while($val=mysql_fetch_array($res))
{
$tva=19.6;
$prix_ligne=$val['prix']*$qte;
$prix_tot_ht+=$prix_ligne;
$prix_temp=($prix_tot_ht*$tva)/100;
$prix_tot_ttc=$prix_tot_ht+$prix_temp;
echo "<tr>";
?>
<td height="30">&nbsp;</td>
<td height="30"><? echo $val['ref']; ?></td>
<td height="30"><? echo $val['nom']; ?></td>
<td height="30"> <? echo $val['prix']; ?>&nbsp;&euro;</td>
<td height="30">
<select name="qte" class="text" id="qte" OnChange="return Recharge();">
<option selected>Choix</option>
<?php
$query = mysql_query("SELECT * FROM quantite ORDER BY id");
while ($data = mysql_fetch_array($query ))
{
?>
<option value="<?php echo $data['id']; ?>"><?php echo $data['qte']; ?></option>
<?php
}
mysql_free_result($query );
?>
</select>
">
">

1 réponse

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2005 à 14:44
hello,



j'ai pas regarde en detail, mais ca :

for($i=0;$i<count($_POST['id']);$i++)
{
$id=$_POST['id'][$i];
$qte=$_POST['qte'];
}

Ca me parait tres chelou... ;-)

Deja, petite remarque, il vaut mieux sortir le count () de ta boucle :

$nbr = count ($tab);

for ($i = 0; $i < $tab; $i ++)



Ensuite, la, tu parcours chaque index de ton tableau, et a chaque
boucle, tu assignes le $_POST['id'][$i] a une variable $id...hmmm...ce
qui veut dire que la 2de boucle effacere le $id cree a la 1eere boucle,
la 3eme effacera celui cree a la 2eme etc...et a la fin, tu te
retrouves simplement avec ce que tu recuperes dans ton caddy a la
derniere boucle. Tout le reste a disparu.

Et $qte = $_POST['qte']

C'est pareil, en pire : a chaque boucle, tu reaffected la MEME valeur a $qte. Ca sert a quoi?

Prenons un exemple simple :

$tab = array (5, 10, 15);

$nbr = count ($tab);

for ($i = 0; $i < $nbr; $i ++) {

$var = $tab[$i];

}

echo $var; // etonnement, ca va donner : 15... ;-) 5 et 10 ont ete
perdus, puisque tu as d'abord donne a $var la valeur 5, puis tu as
efface cette valeur pour lui affecter la veleur 10...et enfin, 15. Donc
$var vaut 15.



Tu esperais quoi...?
0
Rejoignez-nous