Affichage des elements d'une bdd [Résolu]

Signaler
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Salut,

j'ai un petit probleme, j'ai une table avec plusieurs infos identiques et differentes et je ne souhaite afficher que les infos differentes !

ex

num || infos || valeur

1 || aaa || 12
2 || aaa || 10
3 || aaa || 5
4 || bbb || 7                                                   total aaa : 27
5 || bbb || 15                                                 total bbb : 22
6 || abc || 8                                                    total abc : 20
7 || abc ||| 12                                                  total ccc : 15
8 || ccc || 15

et je souhaite afficher :

aaa : 27
bbb : 22
abc : 20
ccc : 15

Comment faire !??

joebuz

23 réponses

Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
enfinnnnnnnn

$query=mysql_query("SELECT sites ,produits FROM catalogue ORDER BY sites");
$tab=array();
While($ligne=mysql_fetch_array($query))
{
$t=$ligne['sites']."
";
if(array_key_exists("$t", $tab))
{
$tab["$t"]+=1;
}else{
$tab["$t"]=1;
}
}
foreach(array_keys($tab) as $key)
{
echo "$key =$tab[$key] references enregistrées
";
}
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

Au passage c'est quoi la difference entre

mysql_fetch_array et mysql_fetch_assoc ?

joebuz
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
salut voici une solution:
=================================
$query=mysql_query("SELECT id AS info ,valeur FROM ma_table ORDER BY info");









$tab=array();


While($ligne=
mysql_fetch_assoc($query))
{
if(array_key_exists($ligne['info'], $tab))
{
$tab["


$ligne['info']"]=intval(




$ligne['valeur'])+




$tab["




$ligne['info']"];
}else{





$tab["




$ligne['info']"]=intval(




$ligne['valeur']);
}



}
foreach(array_keys($tab) as $key)
{
echo "$key =$tab[$key]
";
}
========================================================
vasy testé et repond moi
bonne prog
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

ca ne marchera pas puisqu'en fait la 'valeur' est du texte et je veux juste savoir combien il y a de ligne par 'infos' !?

joebuz
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
explique bien pour que je te puisse aider, enfin si je peux
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

ok désolé !

bon j'ai une table 'catalogue' avec une colonne 'sites' et une colonne 'produits'

il y a evidemment plusieurs produits par sites et plusieurs sites.
En tout environ 8000 lignes

et je souhaiterais pouvoir afficher le nom des differents 'sites' et le nombre total de produits par 'sites'.

Voila

num || sites || id_prod || nom_prod || desc_prod || ...

1 || aaa.com || 0001 || prod1 || blablabla
2 || aaa.com || 0002 || prod2 || blablabla
3 || aaa.com || 0003 || prod3 || blablabla
4 || bbb.com || 1001 || prod1 || blablabla
5 || bbb.com || 1002 || prod2 || blablabla
6 || abc.com || 0101 || prod1 || blablabla
7 || ddd.com || 2001 || prod1 || blablabla
... || ... || ... || ...

affichage :

aaa.com = 3 references enregistrées
bbb.com = 2 references enregistrées
abc.com = 1 reference enregistrée
ddd.com = 1 reference enregistrée

Désolé pour le manque d'explications !
joebuz
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
salut : voici sa change po bcp

$query= mysql_query("SELECT id AS sites ,produits FROM




cataloque





ORDER BY sites");









$tab =array();


While($ligne=
mysql_fetch_assoc($query))
{
if(array_key_exists($ligne['sites'], $tab))
{
$tab["


$ligne['info']"]++;






}else{





$tab["




$ligne['info']"]=1




;
}



}
foreach(array_keys($tab) as $key)
{
echo "$key =$tab[$key] references enregistrées
";
}
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
desolé ya une erreur

$query= mysql_query("SELECT id AS sites ,produits FROM cataloque
ORDER BY sites");

$tab =array();
While($ligne= mysql_fetch_assoc($query))
{
if(array_key_exists($ligne['sites'], $tab))
{
$tab[" $ligne[' sites']"]++;
}else{
$tab["$ligne['sites']"] =1;
}
}
foreach(array_keys($tab) as $key)
{
echo "$key =$tab[$key] references enregistrées
";
}
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

ok j'essaye de suite !

joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

ca me donne une erreur

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

Les erreurs viennent des lignes

$tab["$ligne['sites']"]++;
et
$tab["$ligne['sites']"]=1;

joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII !!!!!!!
joebuz
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
de rien en est là pour aider

juste une remarque pour la ligne suivante:
$t=$ligne['sites']."
";

devient
$t=$ligne['sites']
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

oui j'ai deja fait quelques petites modif, impeccable, merci encore !
joebuz
Messages postés
84
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
28 décembre 2006

qu'elle est la ligne qui te retourne l erreur?
Messages postés
84
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
28 décembre 2006

oups
j ai rien dis
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
le prebleme est reglé imane
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

un truc beaucoup plus simple en SQL :

//ne pas oublier la connexion et la sélection de base
$requete = mysql_query('SELECT info, SUM(valeur) AS somme FROM articles GROUP BY info');
mysql_close();

while($r = mysql_fetch_object($requete))
{
echo $r->info,'|',$r->somme,'
';
}

et hop c'est torché

a +
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

pas testé, mais vu comme ca, ça a l'air comme meme plus simple !!!

Peux-tu faire une explication de ta requete SQL ? stp

joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

alors j'ai testé et pou ce que je veux faire ca ne peux pas fonctionner puisque je ne veux pas faire une somme de plusieurs valeurs numeriques mais faire un compte du total de reference pour chaque 'infos' !!

désolé !

joebuz