Tout sélectionner dans une BDD

WRInaute passionné
Bonjour
J'ai une base de données, une table avec y lignes sur l'axe des ordonnées (des pays et villes) et sur l'axe des abscisses des traductions dans différentes langues.
certaines traduction y sont, d'autre non. Par exemple, Paris est traduit en anglais et français mais pas en chinois.

Je voudrais faire une requête qui me permette de savoir combien d'élément j'ai dans ma table.
C'est facile de savoir le nombre de ligne, ok, mais selon la ligne j'ai 3, 4, ou 10 ou 20 traductions.
Par exemple j'ai 20 traductions pour Paris, et seulement 4 traductions pour Marseille.
Bref je voudrais savoir combien j'ai de traduction dans ma table.

Comment puis-je faire simplement?

Merci
 
WRInaute discret
Ce que je ferais...
ma requête est la selection d'une des entrées (pays ou ville)


Code:
$count = 0;

while ($tab=mysql_fetch_assoc(ma requête)) {
   if ($tab['anglais'] != "") { $count = $count+1 }
   if ($tab['français'] != "") {$count = $count +1 }
   ...le nombre de colones qu'il y a de colonnes...
}

echo "il y a ".$count." traductions pour cette entrée."

Le problème étant que s'il y a beaucoup de colonnes, ça fait un peu long à taper...(mais je débute un peu en php...)
 
WRInaute passionné
merci

Oui, comme ça j'y avait pensé :)
Mais bon il doit bien y avoir un truc tout simple pour connaitre le nombre total d'élément d'une table, ligne et colonne...
 
WRInaute accro
pourquoi nous parler d abscisse et d ordonnée alors que tu parles de table et BDD :)
montre nous la structure de ta BDD plutot
 
WRInaute discret
Ah bien dans ce cas j'peux pas t'aider plus...(parcontre s'il existe surement des fonctions qui retournent le nombre de colonnes d'un base, en revanche le nombre de colonnes remplies j'en doute...ou alors j'aimerais la connaître !)
 
WRInaute impliqué
En fait en SQL c'est vachement simple surtout quand on connait la structure de la table... Sinon effectivement ca devient compliqué, voir mystique :lol:
 
WRInaute discret
Bonjour,


Par exemple, avec cette structure :
Code:
id |   fr     |  en   |  es   |
1  | test    |        | testo |
2  | essai  |  try  |         |


En faisant simplement :
Code:
SELECT SUM( (LENGTH( fr ) >0 ) + ( LENGTH( en ) >0 ) + ( LENGTH( es ) >0 )) AS nb FROM traductions


On obtient :
Code:
| nb |
------
|  4 |
 
WRInaute passionné
ok

Donc la table s'appelle "wpa_cat"

Pour la stucture

Code:
CREATE TABLE `wpa_cat` (
  `nom_en` varchar(100) NOT NULL default '',
  `description` varchar(200) NOT NULL default '',
  `inside` int(20) NOT NULL default '0',
  `compteur` int(10) NOT NULL auto_increment,
  `town` int(6) NOT NULL default '0',
  `date_ins` date NOT NULL default '0000-00-00',
  `hour_ins` time NOT NULL default '00:00:00',
  `nom_fr` varchar(100) NOT NULL default '',
  `nom_it` varchar(100) NOT NULL default '',
  `nom_de` varchar(100) NOT NULL default '',
  `nom_sp` varchar(100) NOT NULL default '',
  `nom_zh` varchar(255) NOT NULL default '',
  `nom_th` varchar(255) NOT NULL default '',
  `nom_ja` varchar(255) NOT NULL default '',
  `nom_ko` varchar(255) NOT NULL default '',
  `nom_sv` varchar(200) NOT NULL default '',
  `nom_nl` varchar(200) NOT NULL default '',
  `nom_pt` varchar(200) NOT NULL default '',
  `nom_ru` varchar(200) NOT NULL default '',
  `nom_tr` varchar(200) NOT NULL default '',
  `nom_ar` varchar(200) NOT NULL default '',
  `nom_el` varchar(200) NOT NULL default '',
  `nom_bg` varchar(255) NOT NULL default '',
  `nom_fi` varchar(200) NOT NULL default '',
  `nom_tl` varchar(255) NOT NULL default '',
  `nom_ms` varchar(255) NOT NULL default '',
  `nom_he` varchar(255) NOT NULL default '',
  `nom_pl` varchar(255) NOT NULL default '',
  `nom_no` varchar(255) NOT NULL default '',
  `nom_eo` varchar(255) NOT NULL default '',
  `nom_sk` varchar(255) NOT NULL default '',
  `nom_da` varchar(255) NOT NULL default '',
  `nom_cs` varchar(255) NOT NULL default '',
  `nom_ca` varchar(255) NOT NULL default '',
  `nom_hu` varchar(255) NOT NULL default '',
  `nom_id` varchar(255) NOT NULL default '',
  `nom_ro` varchar(255) NOT NULL default '',
  `nom_uk` varchar(255) NOT NULL default '',
  `nom_sr` varchar(255) NOT NULL default '',
  `nom_sl` varchar(255) NOT NULL default '',
  `nom_lt` varchar(255) NOT NULL default '',
  `nom_et` varchar(255) NOT NULL default '',
  `nom_hr` varchar(255) NOT NULL default '',
  `nom_te` varchar(255) NOT NULL default '',
  `nom_gl` varchar(255) NOT NULL default '',
  `nom_nn` varchar(255) NOT NULL default '',
  `nom_fa` varchar(255) NOT NULL default '',
  `nom_eu` varchar(255) NOT NULL default '',
  `nom_io` varchar(255) NOT NULL default '',
  `nom_nap` varchar(255) NOT NULL default '',
  `nom_bn` varchar(255) NOT NULL default '',
  `nom_is` varchar(255) NOT NULL default '',
  `nom_ka` varchar(255) NOT NULL default '',
  `nom_vi` varchar(255) NOT NULL default '',
  `nom_bs` varchar(255) NOT NULL default '',
  `nom_lb` varchar(255) NOT NULL default '',
  `nom_br` varchar(255) NOT NULL default '',
  `nom_la` varchar(255) NOT NULL default '',
  `nom_hi` varchar(255) NOT NULL default '',
  `nom_ur` varchar(255) NOT NULL default '',
  `nom_sa` varchar(255) NOT NULL default '',
  `nom_sq` varchar(255) NOT NULL default '',
  `nom_mk` varchar(255) NOT NULL default '',
  `nom_wa` varchar(255) NOT NULL default '',
  `nom_sh` varchar(255) NOT NULL default '',
  `nom_su` varchar(255) NOT NULL default '',
  `nom_ht` varchar(255) NOT NULL default '',
  `nom_scn` varchar(255) NOT NULL default '',
  `nom_ku` varchar(255) NOT NULL default '',
  `nom_ru-sib` varchar(255) NOT NULL default '',
  `nom_lv` varchar(255) NOT NULL default '',
  `nom_ast` varchar(255) NOT NULL default '',
  `nom_mr` varchar(255) NOT NULL default '',
  `nom_af` varchar(255) NOT NULL default '',
  `nom_oc` varchar(255) NOT NULL default '',
  `nom_be` varchar(255) NOT NULL default '',
  `nom_cy` varchar(255) NOT NULL default '',
  `nom_ksh` varchar(255) NOT NULL default '',
  `nom_ta` varchar(255) NOT NULL default '',
  `nom_uz` varchar(255) NOT NULL default '',
  `nom_co` varchar(255) NOT NULL default '',
  `nom_an` varchar(255) NOT NULL default '',
  `nom_cv` varchar(255) NOT NULL default '',
  `nom_kn` varchar(255) NOT NULL default '',
  `nom_gd` varchar(255) NOT NULL default '',
  `nom_ga` varchar(255) NOT NULL default '',
  `nom_tt` varchar(255) NOT NULL default '',
  `nom_az` varchar(255) NOT NULL default '',
  `nom_vec` varchar(255) NOT NULL default '',
  `nom_jv` varchar(255) NOT NULL default '',
  `nom_tg` varchar(255) NOT NULL default '',
  `nom_fy` varchar(255) NOT NULL default '',
  `nom_ia` varchar(255) NOT NULL default '',
  `nom_nds` varchar(255) NOT NULL default '',
  `nom_lmo` varchar(255) NOT NULL default '',
  `nom_als` varchar(255) NOT NULL default '',
  `nom_yi` varchar(255) NOT NULL default '',
  `nom_hy` varchar(255) NOT NULL default '',
  `nom_li` varchar(255) NOT NULL default '',
  `nom_sw` varchar(255) NOT NULL default '',
  `nom_zh-min-nan` varchar(255) NOT NULL default '',
  `nom_ilo` varchar(255) NOT NULL default '',
  `nom_fo` varchar(255) NOT NULL default '',
  `nom_pms` varchar(255) NOT NULL default '',
  `nom_nrm` varchar(255) NOT NULL default '',
  `nom_frp` varchar(255) NOT NULL default '',
  `nom_war` varchar(255) NOT NULL default '',
  `nom_pam` varchar(255) NOT NULL default '',
  `nom_sco` varchar(255) NOT NULL default '',
  `nom_os` varchar(255) NOT NULL default '',
  `nom_fur` varchar(255) NOT NULL default '',
  `nom_ceb` varchar(255) NOT NULL default '',
  `nom_ml` varchar(255) NOT NULL default '',
  `nom_zh-yue` varchar(255) NOT NULL default '',
  `nom_nds-nl` varchar(255) NOT NULL default '',
  `nom_kw` varchar(255) NOT NULL default '',
  `nom_pdc` varchar(255) NOT NULL default '',
  `nom_nov` varchar(255) NOT NULL default '',
  `nom_new` varchar(255) NOT NULL default '',
  `nom_ug` varchar(255) NOT NULL default '',
  `nom_lij` varchar(255) NOT NULL default '',
  `nom_map-bms` varchar(255) NOT NULL default '',
  `nom_se` varchar(255) NOT NULL default '',
  `nom_lad` varchar(255) NOT NULL default '',
  `nom_km` varchar(255) NOT NULL default '',
  `uwh` int(3) NOT NULL default '0',
  PRIMARY KEY  (`compteur`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12009 ;

Les nom_en, nom_fr, nom_it etc... correpond aux traduction en anglais, français, italien etc...

Certaines traductions y sont d'autre pas, pour tous les endroits du monde que j'ai.

Je veux juste réccupérer le nombre total de traduction présentes quand elles y sont, voila :)

Merci
 
WRInaute discret
Vu la structure de ta base... je ne vois pas comment faire mieux en une seule requête que ce que je t'ai proposé...
ça ne te convient pas ?
 
WRInaute passionné
si

Je ne sais pas, en fait j'avais pas vu ton post car quand j'ai posté le mien tu devais poster le tient :D
Je vais essyer ta solution :)
 
Discussions similaires
Haut