Appeler une fonction...

Le
Auden
Bonjour j'ai un soucis pour appeler une fonction :

Je pense avoir bien suivi le tutoriel mais j'ai toujours une erreur.


Voici la fonction

// Affiche de la moyenne

<?php
function affichemoyenne($numerocrit,$boutique)
{

// connexion à la base

$db = mysql_connect('mysql5-3', 'aaaaaaa', 'bbbbbbb') or die('Erreur de
connexion '.mysql_error());
// sélection de la base
mysql_select_db('aquaoiyp') or die('Erreur de selection '.mysql_error());


$query = "SELECT AVG(".$numerocrit.") FROM ".$boutique." WHERE
TO_DAYS(NOW()) - TO_DAYS(date) <= 180;";
$result = mysql_query($query);
$record_array = mysql_fetch_array($result, MYSQL_NUM);
$moyenne = $record_array[0] ;
if ( $moyenne == 0 ) {
echo "Pas de note";
} else {
echo round($moyenne, 2);
echo " / 10";
}
mysql_close(); // on ferme la connexion

}
?>


Et voici avec quoi je comptais l'appeler :

<?php
Require("/affichemoyenne.php");
// on appelle la page contenant la fonction

affichemoyenne("crit1","boutiqueanimalissaintpriest");
?>



Maia ça m'indique une erreur sur cette ligne :




erreur : Fatal error: Call to undefined function: affichemoyenne() in
/boutiques/liste-des-boutiques-de-la-region-lyonnaise.php on line 64
line 64 => affichemoyenne("crit1","boutiqueanimalissaintpriest");

Merci pour votre soutien !!

Auden
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mihamina Rakotomandimby (R12y)
Le #48989
Auden wrote:

Maia ça m'indique une erreur sur cette ligne :


D'abord, on t'a indiqué que MySQL sait faire tout seul la moyenne comme un
grand.
A tu pris en compte?

Olivier Miakinen
Le #48992

Et voici avec quoi je comptais l'appeler :
------------------------------------
<?php
Require("/affichemoyenne.php");


Tu n'as pas d'erreur sur le require ? Il n'est pas commun de mettre
un fichier utilisateur à la racine du système de fichier (ce qui n'a
évidemment rien à voir avec la racine du site web).

Auden
Le #48587
"Mihamina Rakotomandimby (R12y)" message de news: f40fss$9mh$
Auden wrote:

Maia ça m'indique une erreur sur cette ligne :


D'abord, on t'a indiqué que MySQL sait faire tout seul la moyenne comme un
grand.
A tu pris en compte?


Oui ce code fonctionne pafaitement :

<?php
// Affiche la moyenne

// connexion à la base
$db = mysql_connect('mysql5-3', 'aaaa', 'bbbbbb') or die('Erreur de
connexion '.mysql_error());
// sélection de la base
mysql_select_db('aquaoiyp') or die('Erreur de selection '.mysql_error());
$query = "SELECT AVG(crit4) FROM boutiqueanimalissaintpriest WHERE
TO_DAYS(NOW()) - TO_DAYS(date) <= 180;";
$result = mysql_query($query);
$record_array = mysql_fetch_array($result, MYSQL_NUM);
$moyenne = $record_array[0] ;
if ( $moyenne == 0 ) {
echo "Pas de note";
} else {
echo round($moyenne, 2);
echo " / 10";
}

mysql_close(); // on ferme la connexion
?>
-----------------------------------------

Le soucis c'est que je dois écire ce code une quarantaine de fois dans une
même page en ne modifiant juste que le nom de la colonne
(crit1,crit2,crit3,crit4,crit5) et le nom de la table
(boutiqueanimalis,...,....)

C'est pour cela que j'ai voulu mettre ces lignes dans une fonction que
j'aurais pu appeler...avec une commande du genre :
function affichemoyenne("crit1","boutiqueanimalissaintpriest")

Je pourrais faire du copié/collé en ne modifiant que le nom de la colonne et
la table mais c'est loin d'être "propre" et pratique.
J'espére ne pas avoir répondu à côté de la plaque...

Merci


Auden
Le #48588
"Olivier Miakinen"

Tu n'as pas d'erreur sur le require ? Il n'est pas commun de mettre
un fichier utilisateur à la racine du système de fichier (ce qui n'a
évidemment rien à voir avec la racine du site web).


J'avais tronqué l'adresse volontairement dans le post..
La voici dans sa version d'origine..

-----------
<?php
Require("http://www.aqua69.fr/boutiques/affichemoyenne.php"); // on
appelle la page contenant la fonction
// affichage -----------------------------------------
affichemoyenne("crit1","boutiqueanimalissaintpriest");
?>
-----------------------------

Merci pour votre aide !

Olivier Miakinen
Le #48585

Tu n'as pas d'erreur sur le require ? [...]


J'avais tronqué l'adresse volontairement dans le post..
La voici dans sa version d'origine..

-----------
<?php
Require("http://www.aqua69.fr/boutiques/affichemoyenne.php");
^^^^^


Ah, ça change tout ! Là tu ne te contentes pas de lire le fichier, mais
tu demandes à ton serveur de former une requête HTTP qu'elle envoie sur
le réseau (après résolution DNS), cette requête est donc envoyée sur
Internet, elle revient ensuite au serveur, est reçue par le serveur
Apache, qui lance un nouveau processus PHP, lequel lit le fichier (ce
que tu aurais pu faire directement), puis *exécute le code*, code qui
ne retourne rien puisqu'il ne fait que définir une fonction, Apache
forme alors la réponse vide, le renvoie sur le réseau, à destination
de ton premier script PHP qui attend depuis un moment, lit la réponse
vide (donc sans aucune définition de fonction), et continue jusqu'à
l'appel de fonction qui plante puisque cette fonction n'existe pas.

Ai-je besoin de préciser que lire le fichier directement serait plus
efficace (et fonctionnerait) ?


Auden
Le #48584
"Olivier Miakinen"

Ai-je besoin de préciser que lire le fichier directement serait plus
efficace (et fonctionnerait) ?


Merci infiniment cela fonctionne enfin !!

Et dire que j'avais tapé l'adresse au complet pour être sur de ne pas me
tromper dans l'adresse !!

Au plaisir et encore merci !!

Publicité
Poster une réponse
Anonyme