Affichage des elements d'une bdd

Résolu
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013 - 27 déc. 2006 à 23:04
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 30 déc. 2006 à 01:23
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

amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 02:12
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
";
}
3
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
27 déc. 2006 à 23:35
Au passage c'est quoi la difference entre

mysql_fetch_array et mysql_fetch_assoc ?

joebuz
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 00:28
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
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 01:13
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 01:16
explique bien pour que je te puisse aider, enfin si je peux
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 01:28
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
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 01:42
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
";
}
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 01:44
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
";
}
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 01:44
ok j'essaye de suite !

joebuz
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 01:48
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
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 01:55
Les erreurs viennent des lignes

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

joebuz
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 02:19
MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII !!!!!!!
joebuz
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 02:28
de rien en est là pour aider

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

devient
$t=$ligne['sites']
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
28 déc. 2006 à 02:30
oui j'ai deja fait quelques petites modif, impeccable, merci encore !
joebuz
0
imaneflash Messages postés 84 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
28 déc. 2006 à 11:04
qu'elle est la ligne qui te retourne l erreur?
0
imaneflash Messages postés 84 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
28 déc. 2006 à 11:25
oups
j ai rien dis
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
28 déc. 2006 à 11:27
le prebleme est reglé imane
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 déc. 2006 à 11:44
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 +
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
29 déc. 2006 à 21:15
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
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
29 déc. 2006 à 23:58
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
0
Rejoignez-nous