8768 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai besoin de vous :o))

Sur ma page j'aimerai afficher des "résultats,sommes,statistiques", donc je me sert de SUM,COUNT ET AVG..
Et donc j'obtiens bien mon chiffre avec se code par exemple :
 <?php
$champ = 'points'; // Le nom de ta collone de chiffer que tu veux additionner
$table = 'histo_point'; // Le nom de ta table
$sql = 'SELECT SUM('.$champ.') AS total FROM '.$table;
$resultat = mysql_query($sql);
$total = mysql_result($resultat, 0, 'total');
echo $total; // Affiche la somme
?>  


Donc c'est nickel !! Mon chiffre s'affiche bien :oui:

Mais comme j'en ai plusieurs a faire, j'aimerais rentrer mes codes dans un tableau et que ça donne :

10 bananes - 3 patates - 5 pommes - 2 kiwis

Car pour le moment j'obtient :

10
3
5
2

En gros pour récapituler comment insérer mes code (que je vous ai mis ci dessus) dans un tableau avec leurs nom (bananes,patates,etc..

Merci
Bonjour,

Pour commencer, je te suggère d'exécuter tes requêtes avec PDO. mysql_query étant obsolète.
Lien vers la doc : http://php.net/manual/fr/book.pdo.php

Ensuite, je te conseillerais de rassembler ton sum/count/avg sous la forme d'une seule requête. Ouvrir et fermer une connexion possède un coût en ressource, donc de manière générale, on va toujours essayer de rassembler un maximum d'infos avec un minimum de requêtes. Smiley cligne

Voilà le code que je te propose :

<?php

$champ = 'points'; // Le nom de ta collone de chiffer que tu veux additionner
$table = 'histo_point'; // Le nom de ta table

$sql = ' SELECT SUM( '.$champ.' ) as sum, AVG( '.$champ.' ) as avg, count( '.$champ.' ) as count FROM '.$table;

$rs = $dbh->query($sql);

/*
si tu refais plusieurs fois une requête avec des param différents dans le where, tu peux utiliser cette syntaxe à la place du query. Ça ne marche pas avec les noms de tables ou de colonnes.

$sth = $dbh->prepare($sql);
$sth->bindParam(':param1', $param1);
$sth->bindParam(':param2', $param2);
$sth->execute();
$rs=$sth->fetch();
*/

?>

<table>
<tr>
<td><?php echo $rs['sum']; ?></td>
<td><?php echo $rs['avg']; ?></td>
<td><?php echo $rs['count']; ?></td>
</tr>
</table>


/!\ Il faudra que tu modifies ton fichier de connexion pour utiliser ce code qui se base sur PDO.

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>


Si tu as plusieurs requêtes à faire pour alimenter le même tableau html, tu peux alimenter un tableau en php. Voilà la syntaxe pour l'écriture :

$tab[0][0]=$rs['sum']; ou $tab[0]['sum']=$rs['sum'];

Et pour la lecture, c'est tout simplement :

echo $tab[0][0];

Les premiers crochets de $tab correspondent à la ligne et les deuxièmes à la colonne. Tu peux les identifier avec un nombre ou avec une chaîne. Tu pourras ensuite lire ton $tab et créer ton tableau en html à l'aide d'un for ou foreach php.

J'espère t'avoir donner quelques pistes, bon courage ! Smiley cligne
Modifié par Marie_Br (30 May 2016 - 11:05)