[PHP] Fonction qui ne marche pas !

Résolu/Fermé
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 - 5 mars 2008 à 13:57
sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 - 5 mars 2008 à 17:30
Bonjour,

afin de raccourcir mon code, j'ai voulu faire une fonction afin d'éviter les répétitions.

Voici mon code php au début :

-------------------------------------------------------------------------

<?
$affi="";
$depp=$_GET["dep"];
$x=0;
$req = "SELECT * FROM ddass WHERE numero='".$depp."'";

if($depp=="liste") //il faut toutes les afficher
{
$req="SELECT * FROM ddass ORDER BY cp";
}


$res=mysql_query($req,$cnx); //exécution de la requete
$JeuEnr=mysql_fetch_assoc($res);

While ($JeuEnr)
{
$affi=$affi."<font face='arial' size='2'><b>";
$affi=$affi.$JeuEnr["adr1"]."</b><br>";
$x=$x+1;

If (!empty($JeuEnr["adr2"]))
{
$affi=$affi.$JeuEnr["adr2"]."<br>" ;
}
If (!empty($JeuEnr["adr3"]) )
{
$affi=$affi.$JeuEnr["adr3"]."<br>";
}
If (!empty($JeuEnr["adr4"]))
{
$affi=$affi.$JeuEnr["adr4"]."<br>";
}
If (!empty($JeuEnr["adr5"]))
{
$affi=$affi.$JeuEnr["adr5"]."<br>";
}
If (!empty($JeuEnr["adr6"] ))
{
$affi=$affi.$JeuEnr["adr6"]."<br>";
}
$affi=$affi.$JeuEnr["cp"]." ".$JeuEnr["ville"]."<br>";
$affi=$affi."Téléphone : ".$JeuEnr["tel"]."<br>";
$affi=$affi."Fax : ".$JeuEnr["fax"]."<br>";

$mail=$JeuEnr["mail"];

$affi=$affi."E-mail : <a href=mailto:'.$mail.'>".$mail."</a><br>";
$affi=$affi."</font><hr color='+chr(34)+'#F3BFB2'+chr(34)+' size='+chr(34)+'3'+chr(34)+'>";

$JeuEnr= mysql_fetch_assoc($res);//enregistrement suivant
}

--------------------------------------------------------------------------------------------------------------------

J'ai ensuite ajouté une fonction :

---------------------------------------------------------------------------------------------------------------------

<?
$affi="";
$depp=$_GET["dep"];
$x=0;
$req = "SELECT * FROM ddass WHERE numero='".$depp."'";

if($depp=="liste") //il faut toutes les afficher
{
$req="SELECT * FROM ddass ORDER BY cp";
}


function TesterSiNonVide($champ)
{
If (!empty($champ))
{
$affi=$affi.$champ."<br>" ;
}
}

$res=mysql_query($req,$cnx); //exécution de la requete
$JeuEnr=mysql_fetch_assoc($res);

While ($JeuEnr)
{
$affi=$affi."<font face='arial' size='2'><b>";
$affi=$affi.$JeuEnr["adr1"]."</b><br>";
$x=$x+1;

TesterSiNonVide($JeuEnr["adr2"]);
TesterSiNonVide($JeuEnr["adr3"]);
TesterSiNonVide($JeuEnr["adr4"]);
TesterSiNonVide($JeuEnr["adr5"]);
TesterSiNonVide($JeuEnr["adr6"]);


$affi=$affi.$JeuEnr["cp"]." ".$JeuEnr["ville"]."<br>";
$affi=$affi."Téléphone : ".$JeuEnr["tel"]."<br>";
$affi=$affi."Fax : ".$JeuEnr["fax"]."<br>";

$mail=$JeuEnr["mail"];

$affi=$affi."E-mail : <a href=mailto:'.$mail.'>".$mail."</a><br>";
$affi=$affi."</font><hr color='+chr(34)+'#F3BFB2'+chr(34)+' size='+chr(34)+'3'+chr(34)+'>";

$JeuEnr= mysql_fetch_assoc($res);//enregistrement suivant
}
if ($x=0 And $depp > "")
{
$affi= "non trouvé <hr color='+chr(34)+'#F3BFB2'+chr(34)+' size='+chr(34)+'3'+chr(34)+'>";
}
echo $affi; //affichage des coordonnées en fonction du département saisit

include('rech.inc');
?>

Ma fonction ne marche pas, puisque quand j'affiche la page, il ne me met plus les adresses... (adr2 à adr6)
A voir également:

3 réponses

sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
5 mars 2008 à 15:54
bonjour,

si tu affiche la variable de $champ dans TesterSiNonVide, il te met koi ??

function TesterSiNonVide($champ)
{
echo "valeur champ = ".$champ;
If (!empty($champ))
{
$affi=$affi.$champ."<br>" ;
}
} 
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
5 mars 2008 à 16:49
Mon problème est résolu, voici la solution :

Il fallait demander à la fonction de renvoyer un résultat :

function TesterSiNonVide($champ)
{
$resultat = "";
If (!empty($champ))
{
$resultat = $champ."<br>" ;
}
return $resultat;
}
// [...]
// et modifier les appels :
$affi .= TesterSiNonVide($JeuEnr["adr2"]);
$affi .= TesterSiNonVide($JeuEnr["adr3"]);
$affi .= TesterSiNonVide($JeuEnr["adr4"]);
// [...]
0
sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
5 mars 2008 à 17:30
j'y avait pensé au return, mais je pensait que tu utilisait des variables globales justement
0