par
Invité » 06 avr. 2010, 18:51
Salut tout le monde, alors j'ai un soucis avec les variables d'une requête se trouvant dans une fonction. J'ai créé une fonction pour calculer des frais de port qui fonctionne bien lorsque dans cette fonction je ne fai pas appel à ma base de donné. Et ma requête sql fonctionne aussi lorsque je ne l'inclus pas dans ma fonction... Arf! du coup j'suis en manque d'idée là... AUSSSEEECCOOOUURRR...
$pays = 'France';
$reponse = $bdd->prepare("
SELECT *
FROM bouille_fraisdeport
WHERE pays = :pays
");
$reponse->execute(array(
'pays' => $pays
));
$resultat = $reponse->fetch(PDO::FETCH_ASSOC);
$prix_mini_1 = htmlspecialchars($resultat['prix_mini_1']);
$prix_mini_2 = htmlspecialchars($resultat['prix_mini_2']);
$prix_mini_3 = htmlspecialchars($resultat['prix_mini_3']);
$prix_mini_4 = htmlspecialchars($resultat['prix_mini_4']);
$prix_mini_5 = htmlspecialchars($resultat['prix_mini_5']);
$tarif_net_1 = htmlspecialchars($resultat['tarif_net_1']);
$tarif_net_2 = htmlspecialchars($resultat['tarif_net_2']);
$tarif_net_3 = htmlspecialchars($resultat['tarif_net_3']);
$tarif_net_4 = htmlspecialchars($resultat['tarif_net_4']);
$tarif_net_5 = htmlspecialchars($resultat['tarif_net_5']);
//Calcules des frais de port
function FraisDePort($montant_supports)
{
If (isset($prix_mini_1))
{
if ($montant_supports > $prix_mini_1 and $montant_supports <= $prix_mini_2)
{
return $tarif_net_1;
}
elseif ($montant_supports > $prix_mini_2 and $montant_supports <= $prix_mini_3)
{
return $tarif_net_2;
}
elseif ($montant_supports > $prix_mini_3 and $montant_supports <= $prix_mini_4)
{
return $tarif_net_3;
}
elseif ($montant_supports > $prix_mini_4 and $montant_supports <= $prix_mini_5)
{
return $tarif_net_4;
}
elseif ($montant_supports > $prix_mini_5)
{
return $tarif_net_5;
}
}
}
echo FraisDePort(5);
Salut tout le monde, alors j'ai un soucis avec les variables d'une requête se trouvant dans une fonction. J'ai créé une fonction pour calculer des frais de port qui fonctionne bien lorsque dans cette fonction je ne fai pas appel à ma base de donné. Et ma requête sql fonctionne aussi lorsque je ne l'inclus pas dans ma fonction... Arf! du coup j'suis en manque d'idée là... AUSSSEEECCOOOUURRR...
[php]
$pays = 'France';
$reponse = $bdd->prepare("
SELECT *
FROM bouille_fraisdeport
WHERE pays = :pays
");
$reponse->execute(array(
'pays' => $pays
));
$resultat = $reponse->fetch(PDO::FETCH_ASSOC);
$prix_mini_1 = htmlspecialchars($resultat['prix_mini_1']);
$prix_mini_2 = htmlspecialchars($resultat['prix_mini_2']);
$prix_mini_3 = htmlspecialchars($resultat['prix_mini_3']);
$prix_mini_4 = htmlspecialchars($resultat['prix_mini_4']);
$prix_mini_5 = htmlspecialchars($resultat['prix_mini_5']);
$tarif_net_1 = htmlspecialchars($resultat['tarif_net_1']);
$tarif_net_2 = htmlspecialchars($resultat['tarif_net_2']);
$tarif_net_3 = htmlspecialchars($resultat['tarif_net_3']);
$tarif_net_4 = htmlspecialchars($resultat['tarif_net_4']);
$tarif_net_5 = htmlspecialchars($resultat['tarif_net_5']);
//Calcules des frais de port
function FraisDePort($montant_supports)
{
If (isset($prix_mini_1))
{
if ($montant_supports > $prix_mini_1 and $montant_supports <= $prix_mini_2)
{
return $tarif_net_1;
}
elseif ($montant_supports > $prix_mini_2 and $montant_supports <= $prix_mini_3)
{
return $tarif_net_2;
}
elseif ($montant_supports > $prix_mini_3 and $montant_supports <= $prix_mini_4)
{
return $tarif_net_3;
}
elseif ($montant_supports > $prix_mini_4 and $montant_supports <= $prix_mini_5)
{
return $tarif_net_4;
}
elseif ($montant_supports > $prix_mini_5)
{
return $tarif_net_5;
}
}
}
echo FraisDePort(5);
[/php]