[PHP] function... return

Résolu/Fermé
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 - 24 juil. 2008 à 10:15
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 - 24 juil. 2008 à 10:32
Bonjour,

alors voila j'ai un souci que je n'arrive pas a résoudre seul c'est pourquoi je sollicite votre aide...

Voila mon code de la page 1 (seulement ce qui nous interesse) :

function sql_count()
{
	$sql = "SELECT id FROM test_sex";
	
	$result = mysql_num_rows(sql_query($sql)) or die('Impossible d\'executer la requete');

	return $result;
}


et le code de ma page 2 (ce qui nous interesse seulement) :

sql_count();

echo $result;


Mon souci est que rien ne passe dans la variable "$result"....

autrement dit $result = NULL

Pourtant dans ma page 1 $result vaut bien quelque chose puisque si je remplace le
return $result;


par

echo $result;


mon nombre s'affiche bien...

Je suppose donc que j'utilise mal le "return" mais je ne comprends pas ni comment ni pourquoi je l'utilise mal... J'ai beau retourner la doc php dans tous les sens...

Je précise que l'erreur est bien au niveau PHP et non pas SQL (j'ai fais tout les tests)...
Je me connecte bien a la BDD ma table existe et elle est remplie ! ;)
Autre chose je fais bien un include de la page 1 dans la page 2 (ca me semble évident mais je le précise quand meme...)

Par avance merci



A voir également:

5 réponses

salut,
ça fait très longtemps que j'ai pas fait de php mais bon...

normal dans ta page 1 $resultat est variable locale. donc pas accessible dans page2.

dans page 2 essayes :

<?

$resultat = sql_count();
echo $result;

?>
0
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 2
24 juil. 2008 à 10:22
effectivement il semble que ca soit ca...

merci !!!

Mais a quoi sert le "return $result;" si il ne transmet pas la variable ???
0
le $resultat est locale à la fonction...
$resultat est ce que ta fonction va renvoyer comme resultat...
tu peux pas y accéder en dehors...

l'interet du 'return' est de renvoyer une valeur,
ie tu peux faire $mavariable = mafonction();
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 juil. 2008 à 10:28
Bonjour.
function sql_count()
{
	$sql = "SELECT id FROM test_sex";
	
	$result = mysql_num_rows(sql_query($sql)) or die('Impossible d\'executer la requete');

	return $result;
}


Une fonction renvoie ce qui est renvoyé par le return.
Pour l'utiliser, il faut soit l'affecter à une variable, soit l'intégrer dans une autre fonction.
Exemples :
$nombre = sql_cont();
echo sq_count();

Le $result de ta fonction n'existe que dans la fonction (voir la portée des variables dans la doc php).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 2
24 juil. 2008 à 10:32
Merci bien a vous deux !!!

en faite le return returne juste la valeur de la fonction et non la variable elle meme...

donc mon $result n'existe que a l'interieur de la fonction...

Je viens de comprendre!!

Encore merci a vous deux pour ces explications !!!
0