Fonction sql pour trouver le nom d'une table

Résolu
tuqqujaujuq Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
tuqqujaujuq Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


existe-t-il un e fonction php/mysql permettant de trouver à quelle table appartient une donnée?
pex ds quelle table se trouve le nom "jacques"?

merci pour l'amateur que je suis

tuqqujaujuq
A voir également:

6 réponses

le père
 
ca me semblait un peu lourd pour son utilisation.
ça n'est quand même pas si compliqué que ça ...

<?php

$dbServer="localhost"; 
$dbName="essai"; 
$User="xxxxxx"; 
$Pwd="xxxxxx"; 
$cnx = mysql_connect($dbServer, $User, $Pwd ); 
$db = mysql_select_db($dbName); 
$valeurcherchee= "jacques";

  $rep = mysql_db_query($dbName,'show tables in essai') or die (mysql_error()); 
  $tbl=array();
  while ($lgn=mysql_fetch_array($rep)) $tbl[]=$lgn[0];
  mysql_free_result($rep);  

  foreach ($tbl as $table) {
    $rep= mysql_db_query($dbName,'SHOW COLUMNS FROM `'.$table.'` FROM '.$dbName) or die (mysql_error());
    $tbcolonnes=array();
    while ($lgn=mysql_fetch_array($rep)) $tbcolonnes[]=$lgn[0];

    foreach ($tbcolonnes as $colonne) {
      $rep= mysql_db_query($dbName,'SELECT * FROM `'.$table.'` WHERE CONCAT(`'.$colonne.
            '`) =\''.mysql_real_escape_string($valeurcherchee).'\'') or die (mysql_error());
      echo " trouvé ",mysql_num_rows($rep), " fois dans la colonne ", htmlspecialchars($colonne), 
           ' de la table ', htmlspecialchars($table),'<BR>';
       mysql_free_result($rep); 
    } // foreach ($tblcolonnes
  } // foreach ($tbl
?> 
3
phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178
 
tu dois simplement faire autant de requetes qu'il y a des tables à fouiller
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Encore faut-il connaitre la structure de la base et des tables, afin de pouvoir faire des requête qui tiennent la route.
Si tu connais tout ca tu devrait donc savoir dans quelles tables cette information peut etre présente.
0
phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178
 
depuis quand la structure d'une table a de quoi avoir avec ce quelle contient. tu cherches une donnée et pas un élément de la structure de la table
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Je veux dire par là que si tu souhaite trouver une informations dans une base de données, il faut bien connaitre la structures de ses tables pour effectuer une requete sql non ?
Dans le cas contraire je veux bien un exemple car je ne connais pas.
0
phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178 > kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention  
 
malheureusement c'est php/mysql, mais normalement (sous windows) tu utilisera probablement ADO pour te connecter à la base. ADO te fournit le catalogue (la liste de table), la structure d'une table et plus
je suis certain que même sans ADO il y a qq chose de similaire dans php/mysql. au moins la API pour ODBC contient cette fonctionalité. le reste se trouvera sur google.
0
le père > phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention  
 
malheureusement c'est php/mysql, mais normalement (sous windows) tu utilisera probablement ADO pour te connecter à la base ???
Je n'ai jamais utilisé ADO pour me connecter à ma base mysql sous windows. Ou alors comme M.Jourdain...

la requête show tables in base marche très bien en PHP/mysql
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857 > le père
 
Je suis d'accord que tu peux avoir la structure de ta base avec show tables, mais il ne faut pas oublier qu'on est dans le contexte d'un script PHP, donc il faudrait alors développer un moteur d'interprétation du résultat de show table pour construire dynamiquement ses requetes en fonction des noms de table, champs, etc... c'est tout à fait réalisable mais ca me semblait un peu lourd pour son utilisation.

N'y a-t-il rien d'autre qui existe ?
0
phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178 > kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention  
 
je ne sais pas pour mysql mais dans chaque base sérieuse tu peux continuer avec qq chose comme ça

SHOW FIELDS IN nomtable

puis en boucle

for each table in <resultat de SHOW TABLES IN nombase>
for each field in <resultat de SHOW FIELDS IN nomtable>
do stuff
FieldList = FieldList & field.name & ", "
next
next
0

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

Posez votre question
le père
 
Si tu ne connais pas a priori la liste des tables, pour l'avoir :

SHOW TABLES IN nomtable
0
le père
 
SHOW TABLES IN nombase, pardon
0
tuqqujaujuq Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
c'est sympa d'aider les petits amateurs!
0