Recherche par mot clé dans tous les champs de toutes les tables d'une base de donnée

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 621 fois - Téléchargée 15 fois

Contenu du snippet

Bonjour, voilà j'ai cherché un script qui fait une recherche par mot clé sur tous les champs de toute les table d'une base de donnée et j'en ai pas trouvé, alors j'ai créer cette source, à vous de juger et si quelqu'un connais un autre moyen plus simple ca sera aimable de sa part de m'en faire part.

Merci
WJH

Source / Exemple :


<?php
$host = 'localhost';
$user = 'root';
$pass = 'root';
$dbase = 'nom_de_la_base_de_donnee';
    
	$db = mysql_connect($host,$user,$pass) or die("Erreur de connexion au serveur");
	mysql_select_db($dbase,$db) or die("Erreur de connexion a la base de donnees");

$table_name = mysql_query('show tables');
while($data = mysql_fetch_array($table_name)) {// on boucle sur les noms de chaque table
	 $columns_name = mysql_query('show columns from '.$data[0]);
	 while($data1 = mysql_fetch_array($columns_name)) {// on boucle sur les noms de tous les champs de chaque table
	 	$res= mysql_query('select * from '.$data[0].' where '.$data1[0].' like "%Mot_clé%"');
	 	while($data3 = mysql_fetch_array($res)) {// on affiche le resultat de la requete pour chaque champ de chaque table
     	        echo "&nbsp;&nbsp;&nbsp;".$data3[0].'<br/>';
		echo "&nbsp;&nbsp;&nbsp;".$data3[1].'<br/>';
                //etc ......
		}
	 }
}
?>

A voir également

Ajouter un commentaire

Commentaires

ABDOULAX16
Messages postés
1
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
27 février 2016
-
merci,,,,,,,,,
furefure
Messages postés
2
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
22 mars 2011
-
Euh pourquoi pas var_dump($row) ou var_dump($dataX[X]) ...
C'est pas que ca me choque..
Sinon j'aime bien le code... C'est adaptable assez facilement pour le faire sur certain champs de certaine table
cs_gabay
Messages postés
25
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
29 juin 2010
-
$word c'est le mot clé tu doit l'initialisé au début par une valeur que tu récupère en GET ou en POST ou bien pou tester tu mes juste une chaine de caractère.

Sinon, Marshall_Mathers, oui ca exécute autant de requêtes qu'il existe de champs, et c'est vrais que c'est mieux de concaténer les requête comme ca on réduit le nombre de requêtes à une par table... entre autre ca devient comme ceci:

<?php
$host = 'localhost';
$user = 'root';
$pass = 'root';
$dbase = 'nom_de_la_base_de_donnee';
$columns ='';

$db = mysql_connect($host,$user,$pass) or die("Erreur de connexion au serveur");
mysql_select_db($dbase,$db) or die("Erreur de connexion a la base de donnees");

$table_name = mysql_query('show tables');
while($data = mysql_fetch_array($table_name)) {// on boucle sur les noms de chaque table
$columns_name = mysql_query('show columns from '.$data[0]);
while($data1 = mysql_fetch_array($columns_name)) {// on boucle sur les noms de tous les champs de chaque table
if(empty($columns)){
$columns .= $data1[0].' like "%Mot_clé%"';
}else{
$columns .= ' or '.$data1[0].' like "%Mot_clé%"';
}
}
$res= mysql_query('select * from '.$data[0].' where '.$columns);
while($data3 = mysql_fetch_array($res)) {// on affiche le resultat de la requete pour chaque champ de chaque table
echo " ".$data3[0].'
';
echo " ".$data3[1].'
';
//etc ......
}
}
?>
cs_nino31
Messages postés
17
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
29 avril 2013
-
Bonjour,

Avec le code de phpanonyme, j'ai : "Notice: Undefined variable: word in E:\wamp\www\boxavenue\test-connect-bdd\search.php on line 16"

Un question : ou entre-t-on les mots à rechercher ?

Merci
cs_Marshall_Mathers
Messages postés
56
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
30 novembre 2007
-
Bonjour Gabay,

Ton script va exécuter autant de requêtes qu'il existe de champs ? Je ne pense pas que cela soit très bon pour l'accès et la vitesse...
J'ai un script du même genre qui concatène les requêtes ensemble comme le script PDO de “phpAnonyme”. Je pense que c'est la meilleure solution.

Mais continue comme ça =) !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_gabay)