Bonjour à toute la communauté,
Mon premier message ici, une petite présentation s'impose, voila je m'appelle Erwann, 23 ans d'orléans et je gère une site de petites annonces...
Je rencontre un petit souci pour calculer le nombre d'enregistrement sur plusieurs tables.
En fait je possède une table de 100 000 membres, chaque membre à la possibilité de déposer un bien dans différentes tables (auto, moto, bateau, immo ...)
Je souhaiterais faire une sorte de back up chaque jour dans une table qui contiendrait le nombre de biens publiées pour chaque membre.
J'ai déjà un petit quelque chose mais le temps pour le comptage est vraiment trop long
Voici ce que j'ai déjà :
Je fais un boucle de tous les membres, je récupère l'id et ensuite je calcule le nombre de bien de chaque table.
Avec "seulement" 10000 membres c'est hyper long.
Quelqu'un aurait il une méthode pour que le comptage soit plus rapide, une requête optimisée ou quelque chose pour me mettre sur la piste ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 $select = "SELECT id_user FROM user ORDER BY id_membre DESC limit 10000"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); while($row = mysql_fetch_array($result)) { $id_user=$row['id_user']; $selecti = "SELECT count(id_automobile) FROM auto WHERE id_user='$id_user' limit 50"; $resulti = mysql_query($selecti,$link) or die ('Erreur : '.mysql_error() ); $rowi = mysql_fetch_row($resulti); $total_automobile = $rowi[0]; $selecti = "SELECT count(id_moto) FROM auto WHERE id_user='$id_user' limit 50"; $resulti = mysql_query($selecti,$link) or die ('Erreur : '.mysql_error() ); $rowi = mysql_fetch_row($resulti); $total_moto = $rowi[0]; $total_user = $total_automobile + $total_moto; echo"$id_membre à $total_user annonce(s)"; }
Merci d'avance de votre aide
Erwann
Partager