[Résolu]if qui ne fonctionne pas

fgiuliano

Habitué
Bonjour à tous,
Je suis en train de tourner en rond et je ne vois pas que faire pour m'en sortir...

J'ai un formulaire qui me permet de sélectionner des choix avec des checkbox et j'aimerai que si tel ou tel choix est sélectionné, la somme totale s'incrémente.

Pour cela, je fais un if qui vérifie si le $choix est égal à une valeur de mon tableau et si oui, j'incrémente ma somme...

Mais malheureusement :( , on entre jamais dans mon if...

Voilà mon code:

[cpp]
<?php
include("secure.php");
include("pcdb.php");

$connexion = mysql_connect($hote, $utilisateur, $mdp);
$choix_base = mysql_select_db($data_base, $connexion)or die("Impossible d'ouvrir le fichier de comptes");

if(isset($_POST['Total']))
{
if(!empty($_POST['commande']))
{
$commande = $_POST['commande'];

$sql = "SELECT libelle, prix FROM prix, produit WHERE produit.idproduit = prix.idproduit";
$req = mysql_query($sql) or die (mysql_error());

while ($data = mysql_fetch_array($req))
{
$libelle = $data['libelle'];
foreach($commande as $choix)
{
echo '$data: '.$libelle;?><br /><?php
echo '$choix: '.$choix;?><br /><?php
echo $data['prix'];?><br /><br /><?php
if($libelle == $choix)
{
echo 'Somme Avant: '.$somme;
$prix = $data['prix'];
$somme = $somme + $prix;
echo $data['prix'];
echo 'Somme Après: '.$somme;
}
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>LOGEM SOFTWARE ENGINEERING SA - Achat licence</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="LOGEM SOFTWARE ENGINEERING SA" />
<meta name="keywords" content="aide à la planification" />
</head>
<body>
<form action="test2.php" method="post">
<?php

$sql = "SELECT produit.idproduit, libelle, prix FROM prix, produit WHERE produit.idproduit = prix.idproduit";
$req = mysql_query($sql) or die(mysql_error());

while ($data = mysql_fetch_array($req))
{
?>
<div>
<span><input type="checkbox" name="commande[]" value=" <?php echo $data['libelle'];?>"><?php echo $data['libelle'];?></span>
<span>Prix:</span>
<span><?php echo $data['prix'];?></span>
</div>
<?php
}
mysql_close();
?>
<div><strong>Total: </strong><?php echo $somme; ?></div>

<div>
<span><input type="reset" name="Effacer" value="Effacer" /></span>
<span><input type="submit" name="Total" value="Total" /></span>
<span><input type="submit" name="Commander" value="Commander" /></span>
</div>
</form>
</body>
</html>
[/cpp]

Merci d'avance pour votre aide!
:hello:
 

fgiuliano

Habitué
Je ne sais pas si c'est la meilleure façon de faire, mais en tout cas, ça fonctionne! :)

[cpp]
<?php
include("secure.php");
include("pcdb.php");

$connexion = mysql_connect($hote, $utilisateur, $mdp);
$choix_base = mysql_select_db($data_base, $connexion)or die("Impossible d'ouvrir le fichier de comptes");

if(isset($_POST['Total']))
{
if(!empty($_POST['commande']))
{
$liste = implode(',',$_POST['commande']);

$sql = "SELECT * FROM prix, produit WHERE produit.idproduit = prix.idproduit AND produit.idproduit IN($liste)";
$req = mysql_query($sql) or die (mysql_error());

while($data = mysql_fetch_array($req))
{
$somme = $somme + $data[prix];
}
}
}
?>
[/cpp]

Pour ceux que ça intéresse! :hello:
 

fgiuliano

Habitué
Et encore mieux pour éviter la boucle! :)

[cpp]
<?php
include("secure.php");
include("pcdb.php");

$connexion = mysql_connect($hote, $utilisateur, $mdp);
$choix_base = mysql_select_db($data_base, $connexion)or die("Impossible d'ouvrir le fichier de comptes");

if(isset($_POST['Total']))
{
if(!empty($_POST['commande']))
{
$liste = implode(',',$_POST['commande']);

$sql = "SELECT SUM(prix) AS Total FROM prix, produit WHERE produit.idproduit = prix.idproduit AND produit.idproduit IN($liste)";
$req = mysql_query($sql) or die (mysql_error());
$res = mysql_fetch_assoc($req);
$somme = $res['Total'];
}
}
?>
[/cpp]

Voilà, et merci! :hello:
 

KangOl

Grand Maître
bha voila !

et si ta version de mysql te le permet, faut un exists au lieu du in ce sera un peut plus optimisé ;)

d'alleuir ? pourquoi deux tables ?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 080
Messages
6 716 716
Membres
1 586 248
Dernier membre
GxBear263
Partager cette page
Haut