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
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");
D'abord, on t'a indiqué que MySQL sait faire tout seul la moyenne comme un grand. A tu pris en compte?
Olivier Miakinen
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).
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).
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
"Mihamina Rakotomandimby (R12y)" a écrit dans le 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
"Mihamina Rakotomandimby (R12y)" <mihamina@rktmb.org> a écrit dans le
message de news: f40fss$9mh$2@cabale.usenet-fr.net...
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...
"Mihamina Rakotomandimby (R12y)" a écrit dans le 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
"Olivier Miakinen" <om+ a écrit
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" <om+news@miakinen.net> a écrit
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");
?>
-----------------------------
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
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..
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) ?
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..
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) ?
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
"Olivier Miakinen" <om+ a écrit
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 !!
"Olivier Miakinen" <om+news@miakinen.net> a écrit
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 !!