Deux tables plus un COUNT

Eléphant du PHP | 333 Messages

17 nov. 2013, 09:31

Bonjour, j'aimerais trouver une requète qui me retournera la liste (mysql_fetch_array) de NOM provenant de la table ACCES, mais aussi qui compterais le nombre d'entrée pour chacun des USER de la table LISTE. Le but est aussi de pouvoir cliquer sur le NOM et que dans l'adresse je puisse inscrire le USER

Le résultat devrais donner:
nom1 (4) --> ...php?voirliste=user1
nom2 (3) --> ...php?voirliste=user2
nom3 (3) --> ...php?voirliste=user3
nom4 (0) --> ...php?voirliste=user4

acces
+-------+-----------+-------------+
| id | user | nom |
+-------+-----------+-------------+
| 1 | user1 | nom1 |
| 2 | user2 | nom2 |
| 3 | user3 | nom3 |
| 4 | user4 | nom4 |
| 5 | user5 | nom5 |
+-------+-----------+-------------+

liste
+-------+-----------+-------------+
| id | user | nom |
+-------+-----------+-------------+
| 1 | user1 | item1 |
| 2 | user2 | item2 |
| 3 | user1 | item3 |
| 4 | user1 | item4 |
| 5 | user3 | item5 |
| 6 | user2 | item6 |
| 7 | user2 | item7 |
| 8 | user3 | item8 |
| 9 | user1 | item9 |
+-------+-----------+-------------+

Merci
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.

Mammouth du PHP | 2278 Messages

17 nov. 2013, 09:55

Je me pencherais sur JOI N et COUNT de mysql
http://dev.mysql.com/doc/refman/5.0/fr/join.html
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 77 Messages

17 nov. 2013, 11:29

cette requête:
select a.*, count(l.user) NbreUser from access a, liste l where a.user = l.user and a.user='user1'
te renvoie une ligne pour le user1 avec les éléments de la table ACCESS ainsi que le nombre de ligne pour user1 dans la table liste (sous forme d'une colonne renommée NbreUser).

Il te suffit ensuite côté PHP de faire un while/foreach,for avec dedans cette requête appliquée à chaque USER. Par exemple, si tu connais le nombre de user(select count(id) from access) et que ce nombre s'appelle $NbreUser:
for($i=1; $i <= $NbreUser; $i++){
      $sql= "select a.*, count(l.user) NbreUser from access a, liste l where a.user = l.user and a.user='user".$i."'";
      //bla bla bla mon traitement de la ligne...
}
Développeur PHP/Javascript/HTML

Mes sites perso :
construire une piscine => http://www.construire-sa-piscine.com
Le cadre végétal => http://www.cadre-vegetal.org