Utilisation d'une fonction dans un array

Petit nouveau ! | 7 Messages

29 juin 2010, 16:41

Bonjour à tous,
j'ai une fonction qui retourne une valeur cependant lorsque je l'utilise dans un tableau elle retourne une variable undefined.
quelqu'un aurait-il une idée ? merci. !

voici la fonction:
function note($foo,$bar,$min,$max) {
$bar="";
$sql = "SELECT COUNT( note ) AS ".$foo." FROM fiche_reponses  WHERE note BETWEEN ".$min." AND ".$max." ";
$req=mysql_query($sql);
$row= mysql_fetch_array($req);
$bar = $row[$foo];
return $bar ;	
	}
et comment je l'appel;
$genres = array(
	'entre 0 et 8'	=>   note(un, bar , 0 , 8) ,
	'entre 9 et 11'	=>   note(deux, bar2 , 9 , 11),
	'entre 12 et 15'	=>   note(trois, bar3 , 12 , 15),
	'entre 16 et 20'	=>   note(quatre ,bar4 , 16 , 20),
);
Je ne comprends, pas dans un autre fichier en faisant un
 echo note(un,"bar1",0,8);
elle retourne la valeur correctement :/

bastian.

Petit nouveau ! | 7 Messages

29 juin 2010, 16:56

Avec les modification suivantes il a lair de prendre en compte les valeurs retourné:
$genres = array(
	'entre 0 et 8'		=>  note($un="un",$bar1="bar1",0,8) ,
	'entre 9 et 11'		=> 	 note($deux="deux",$bar2="bar2",9,11),
	'entre 12 et 15'	=>   note($trois="trois",$bar3="bar3",12,15),
	'entre 16 et 20'	=> 	note($quatre="quatre",$bar4="bar4",16,20),
	
);
mais ça me pose un problème, car c'est moche :p

deuxième point j'utilise cela pour récupérer des valeurs dans une BDD pour l'utiliser dans la bibliothèque Artichow pour les affichages de Camembert,
Pour ceux qui l'aurait déjà utilisé au lieu de me faire 4 parts il m'en met qu'une seul et les % sont érroné, du au 0 qui est retourner par la case 'entre 16 et 20'
Si vous auriez une idée je suis preneur

Petit nouveau ! | 7 Messages

29 juin 2010, 16:59

J'ai une idée, en mettant False si la requête retourne 0 cela fonctionne, seulement j'ai du mal à le formuler dans ma fonction pourriez m 'aider? :D

ça c'est résolu ça fonctionne nickel, j'ai fait:
if ($bar == "0"){ return false ;}
else {
return $bar; }

Sinon pour le tableau pourriez m'aider a rendre le code plus sympathique?

Eléphant du PHP | 422 Messages

29 juin 2010, 17:38

hello


function note($foo,$min,$max) {
$sql = "SELECT COUNT( note ) AS ".$foo." FROM fiche_reponses WHERE note BETWEEN ".$min." AND ".$max." ";
$req=mysql_query($sql);
$row= mysql_fetch_array($req);
return $row[$foo] ;
}

et sans $bar ca donne quoi


++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 7 Messages

29 juin 2010, 17:45

Ça fonctionne aussi :p merci bcp ça allege un peut mon code, mais je suis obligé de déclarer mes variable comme cela lors d'appel ??:
note($un="un" ,0 ,8 )  
Il n'y a pas une autre syntaxe :?:

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

Réglé !
suffit de virer $mavariable= et de laisse seulement la chaine de caractère !!

Merci encore !