Probleme lorque j'integre une requete dans une fonction...

Invité
Invité n'ayant pas de compte PHPfrance

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);

Eléphant du PHP | 428 Messages

06 avr. 2010, 19:47

Pas sûr, mais je crois que tu dois te reconnecter à ta base dans la fonction pour que ça marche ...

ViPHP
ViPHP | 5462 Messages

06 avr. 2010, 20:24

ouai passe ton array en paramètre ca sera plus simple
sinon au lieu de faire 36 fois htmlspecialchars
tu peux faire
$resultat = array_map('htmlspecialchars', $reponse->fetch(PDO::FETCH_ASSOC));