Je débute en Php et j'ai un problême de code que je n'arrive pas à saisir malgré mes recherches sur le net et sur votre forum.
Il s'agit de récupérer la moyenne des chiffres d'une colonne mysql (en l'occurence "age" ), d'en faire la moyenne et de la ressortir via un echo ou un print dans ma page php (le nom de la table est "users" ).
Comme c' est expliqué dans les cours de qualité du siteduzero, la fonction fetch_array renvoie une tableau qui contient les différentes valeur de la ligne.
Meme quand le tableau contient un seul élément, ca reste une tableau, et donc le echo ne marche pas.
Exemple :
Code :
SELEC nom, prenom FROM...
/!\ le forum d'infos-du-net est moisi, donc je ne peux pas écrire SELEC_T, je dois écrire SELEC sinon ca plante. Dans tout le message j'écrirais SELEC au lieu de la meme chose avec un T
Si tu fais un $result = mysql_fetch_array(....),
$result['nom'] vaudra le nom de la personne, et $result['prénom'] son prénom.
Le problème dans ton cas c'est que "avg(age)" n'est pas un nom de champ, et je ne suis pas sur que $result['avg(age)'] marche.
Tu as donc deux possiblités :
1- utiliser les indices numériques : la première valeur a pour indice 0, la deuxième 1...
Par exemple :
Code :
SELEC nom, prenom, classe FROM ...
....
while($result = mysql_fetch_array(...))
Tu peux accéder aux valeur avec $result['nom'], $result['prenom'] et $result['classe'], mais aussi avec $result[0], $result[1] et $result[2] ( /!\ attention ce n'est pas $result['0']).
Dans ton cas, $result[0] contiendra effectivement le résultat de ta requête.
2- nommer la valeur dans la requete SQL On utilise le mot-clé AS :
Code :
SELEC avg(age) AS moyenne FROM...
Quand tu fais ça, tu indiques à MySQL "je veux que tu nommes 'moyenne' le résultat de la moyenne des ages".
Ainsi tu pourras accéder à la valeur par $result['moyenne'].
Que signifiait ton erreur ?
En fait, $result n'est pas une variable texte mais un tableau.
Comme php ne savait pas quoi afficher, il a choisi de te prévenir que c'était un tableau en affichant 'Array' ('tableau' en anglais).
La prochaine fois, pense à utiliser la fonction
print_r : Celle si affiche la variable, spécifie son type, et affiche les valeurs des éléments quand c'est un tableau.
Si tu as une valeur étrange qui ne réagit pas comme tu le souhaites, c'est très utile pour débugguer : cela demande à php "quel est le contenu de la variable ?', et ca marche meme quand c'est une variable innatendue comme un tableau, contrairement à echo.
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.