Soyez le premier à donner votre avis sur cette source.
Snippet vu 14 012 fois - Téléchargée 15 fois
<?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 " ".$data3[0].'<br/>'; echo " ".$data3[1].'<br/>'; //etc ...... } } } ?>
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
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 ......
}
}
?>
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
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.