Requete sql : obtenir nbr de ligne de plusieures tables dans un seul tableau

MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 - 16 juil. 2005 à 11:23
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 16 juil. 2005 à 19:24
bonjour,

je
recherche une facon d'obtenir le nombre de ligne de plusieures tables
de ma base de donnée et récupérer le résultat dans un tableau d'une
ligne où chaque colonne correspond à la table associée. car j'ai 53
colonnes dans ma base de donnée et ca fait long une par une...

en gros, je sais comment récupérer le nombre de ligne d'une table avec la requete :

SELECT COUNT(colonne1) FROM table1



mais si je fait une requete du genre :

SELECT COUNT(table1.colonne1),COUNT(table2.colonne1),COUNT(table3.colonne1) FROM table1,table2,table3

ca me donne un résultat bizare dans certains cas (lorsque il n'y a pas de ligne dans une ou plusieures des tables)



en fait je veux un résultat sous la forme :

table: table1 | table2 | table3

nbr:
15
0 5



mais si l'une des table est vide, ca me donne des 0 partout.




je pense avoir expliqué clairement la situation et le résultat que je
recherche. je n'est pas trouvé dans mon bouquin sur sql ni dans les
forums codes sources.

si vous savez comment faire, meme une réponse breve m'aidera sans aucun doute.



merci

4 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
16 juil. 2005 à 11:38
perso... je vois pas comment faire ça en une requette...



moi je le ferai en plusieurs, comme ceci par exemple (code non testé..)

$my_tables=array("table1"=>0, "table2"=>0,...);

foreach ($my_tables as $table)

{

$count=mysql_query('Select count(*) as c from '.$table);

$res=mysql_fetch_array($count);

my_tables[$table]=$res["c"];

}

echo '';print_r(my_tables);echo '

';


-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 2
16 juil. 2005 à 12:10
wouaw, la rapidité....

merci davwart pour ton précieux temps, meme si ta réponse ne me satisfait qu'a moitier....



en effet ce code fonctionne, mais c'est a peu pres ce que j'ai
actuellement dans mon algo et le but de mon message est simple, je suis
en train de modifier mes sources pour les optimiser au maximum car j'ai
des probleme avec mon hebergeur qui limite le nombre de requete que je
peux effectuer. en bref, actuellement, je fait une requete pour chaque
table, mais avec une cinquantaine de tables a tester ca fait beaucoup
sans parler des autres requete présentes dans ma source..., je me
demandais si c'etait pas possible de récupérer leur longueur en une
seule fois...



en clair, je cherche la sintaxe à adopter pour cette requete,

$res=mysq_query("REQUETE");

et que je puisse extraire les données de cette maniere :

$length_table1=mysql_result($res,0,1)

$length_table2=mysql_result($res,0,2)

car il n'y aurait qu'une seule ligne dans le resultat de la requete.



je ne voi pas comment etre plus clair,

là je suis en train de regarder du coté des UNION mais ca n'a pas l'air fructueux....



en bref davwart, c'est sans doute que tu n'as pas compris completement
ce que je vaoulais faire et sans doute que je m'etais pas expliqué
assez clairement....

ce n'est en aucun cas une réponse pour pour me plaindre de tes services je te rassure....



c'est juste que si quelqu'un d'autre à une réponse plus adaptée a
proposer, je suis toujours preneur. de mon coté, si je trouve la
solution, je préviendrais pour que vous n'ayez pas a chercher
inutilement (ca serait pas tres sympa de ma part sinon...)



de meme si vous connaissez un tuto capable de m'aider... ca pourrait m'être utile...



merci pour votre précieux temps a tous et bonne journée !
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
16 juil. 2005 à 12:45
;)



pas de problème, ta question etait tres bien formulée..

mais j'avoue que... récupérer le nombre d'entrée dans des tables différentes en 1 seule requete... là je vois pas ;)
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 juil. 2005 à 19:24
Salut,



je ne pense pas que ce soit possible j'ai déjà eu affaire à ça et je n'ai pas trouvé non plus :-(



bref par contre, juste par curisosité, quel est ton hébergeur ?

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous