CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

souci php/sql

korpikvodka
korpikvodka
Niveau 10
26 septembre 2012 à 14:57:45

Bonjour,
J'ai dans ma bdd des tables pour des matières et dedans des colonnes avec des notes et des coeff.
Je veux calculer la moyenne pondérée et l'afficher à côté de chaque matière.

Mon fichier fonctions.php :
<?php
function moyenne_ponderee($row) {
$sql=mysql_query('SELECT SUM(note*coeff)/SUM(coeff) AS moyenne FROM '.$row.'');
$data = mysql_fetch_array($sql);
$num_rows = mysql_num_rows($data);
if ($num_rows > 0){
echo $data['moyenne'];
}
}
?>

Mon fichier de base :
<?php
// Lister les tables
$result = mysql_list_tables('notes');
while ($row = mysql_fetch_row($result)) {
echo "$row[0]<br>".moyenne_ponderee($row);
}
?>

Au résultat, j'ai la liste des matières mais pas la moyenne à côté :( Qu'estce qui ne va pas ?

bob63
bob63
Niveau 11
26 septembre 2012 à 17:47:30

Tu es sûre que cette ligne est correcte ?

$sql=mysql_query('SELECT SUM(note*coeff)/SUM(coeff) AS moyenne FROM '.$row.'');

Car la variable $row pour un nom de table je trouve ça étonnant :(

korpikvodka
korpikvodka
Niveau 10
26 septembre 2012 à 19:16:44

Je l'ai testée sur phpmyadmin en mettant directement le nom d'une table style SELECT SUM(note*coeff)/SUM(coeff) AS moyenne FROM anglais et ça marchait très bien.

saianbox
saianbox
Niveau 8
27 septembre 2012 à 23:51:51

Fait un echo de $row juste avant le mysql_query() pour vérifier sa valeur.

saianbox
saianbox
Niveau 8
27 septembre 2012 à 23:53:43

En fait ça serait pas ?

echo "$row[0]<br>".moyenne_ponderee($row[0]);

saianbox
saianbox
Niveau 8
27 septembre 2012 à 23:59:44

et tu pourrais appeler le paramètre de moyenne_ponderee $matiere ! ^^

function moyenne_ponderee($matiere){

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment