RECHERCHE PAR MOT CLÉ DANS TOUS LES CHAMPS DE TOUTES LES TABLES D'UNE BASE DE DO

Signaler
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
-
Messages postés
1
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
27 février 2016
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52955-recherche-par-mot-cle-dans-tous-les-champs-de-toutes-les-tables-d-une-base-de-donnee

Messages postés
1
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
27 février 2016

merci,,,,,,,,,
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
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 ......
}
}
?>
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
Afficher les 8 commentaires