Requête qui revient

Mammouth du PHP | 545 Messages

29 oct. 2007, 18:57

Salut,

J'aurais voulu utiliser une fonction pour une requête qui revient souvent dans mon code avec des arguments différents mais visiblement, j'ai un petit soucis pour faire cela convenablement !
La requête qui revient souvent :
$query = "SELECT *"
    	. "\n FROM #__classement_chang"
		. "\n WHERE participant_id = '" . $id . "' AND annee ='" . $annee . "'"
 		;
	$database->setQuery( $query );
	$database->loadObject($coureur);
	echo '$dossard ' . $dossard = $coureur->dossard;
Je voudrais donc en faire une fonction php avec les arguments $id et $annee. J'avais donc pensé à ceci:
function x() {
$id = 26; 
$annee = 2004;

dossard ($id, $annee);

$database->setQuery( $query );
$database->loadObject($coureur);
echo '$dossard ' . $dossard = $coureur->dossard;
}

// Tout le reste du code

function dossard ($id, $annee) {
	global $database;
	$query = "SELECT *"
    	. "\n FROM #__classement_chang"
		. "\n WHERE participant_id = '" . $id . "' AND annee ='" . $annee . "'"
 		;
	return $query;
	}
Evidement, cela ne fonctionne pas mais je ne sais pas pourquoi ... enfin si, je fais ma formation de codeur sur le tas :roll:

Quelqu'un pourrait-il m'expliquer ce que j'ai fait comme erreur ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphant du PHP | 75 Messages

29 oct. 2007, 19:13

Quel est l'erreur qu'il t'affiche à l'écran?

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

Pourquoi tu as ça comme requête SQL:
$query = "SELECT *"
        . "\n FROM #__classement_chang"
        . "\n WHERE participant_id = '" . $id . "' AND annee ='" . $annee . "'"
         ; 
Au lieu de:
$query = "SELECT * FROM #__classement_chang" WHERE participant_id = '" . $id . "' AND annee ='" . $annee . "'";

Mammouth du PHP | 545 Messages

29 oct. 2007, 19:35

Salut,
Quel est l'erreur qu'il t'affiche à l'écran?
Aucune erreur ... rien n'en ressort !
J'ai quand même tester si les arguments passaient dans la fonction
echo '$id ' . $id . ' $annee ' . $annee;
Et c'est bon mais après rien n'est visiblement retourné !
Pourquoi tu as ça comme requête SQL:
En fait, je me suis mis dans l'idée de faire un composant pour Joomla! et c'est la méthodologie qui y est utilisé !
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 oct. 2007, 19:42

la fonction dossard($id, $annee) te retourne la requête à exécuter. Dans ton exemple, tu ne récupères pas cette requête.
function x() {
$id = 26; 
$annee = 2004;

dossard ($id, $annee); // Ici, tu ne récupère pas $query retournée

$database->setQuery( $query );
$database->loadObject($coureur);
echo '$dossard ' . $dossard = $coureur->dossard;
} 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

29 oct. 2007, 19:43

Salut,
la fonction dossard($id, $annee) te retourne la requête à exécuter. Dans ton exemple, tu ne récupères pas cette requête.
Que dois-je faire dans ce cas?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 545 Messages

29 oct. 2007, 19:46

N'y a-t-il pas un problème dans l'ordre du codage ?

appel -> fonction ???
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 oct. 2007, 19:50

Si une fonction te retourne une valeur, il faut que tu places le résultat dans une variable
// Retourne le produit de 2 valeurs
function multiplie($val1, $val2)
{
  $produit = $val1 * $val2;
  return $produit;
}

$a = 2;
$b = 4;

$resultat = multiplie($a, $b); // Ici, je récupère le résultat de la fonction dans la variable $resultat
echo "Le résultat du produit de ". $a ." par ". $b ." est ". $resultat;
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

29 oct. 2007, 22:40

C'est vrai que cela va beaucoup mieux ... un grand merci pour l'aide.



NB: Il n'y a visiblement pas de problème pour l'ordre entre l'appel et la fonction !
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 oct. 2007, 22:42

Modération :
Sebe, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

29 oct. 2007, 23:33

Modération :
Sebe, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
Oups !
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!