'.$palabra."", $cadena); $palabra=ucfirst($palabra); $cadena=str_replace ( $palabra, ''.$palabra."", $cadena); $palabra=strtoupper($palabra); $cadena=str_replace ( $palabra, ''.$palabra."", $cadena); return $cadena; } //Si es la 1a vez que entro (sin pasar variables por formulario) y la variable de sesión está vacía, pinto el formulario de acceso-conexión: if(empty($_POST) && empty($_SESSION['servidor'])){ ?>
Servidor/URL Base de Datos Usuario Password
Volver'); //seleccionamos cierta base de datos: $seleccion=mysql_select_db($_SESSION['bbdd']) or exit('Error en la seleccion de la BBDD

Volver'); //si logramos conectar lo registramos en la sesion: $_SESSION['conectado']=($seleccion!==FALSE)? TRUE : FALSE; //Estamos conectados pero aun no hemos enviado la busqueda. Vemos las tablas de la BBDD en cuestion llamando a explora_BD() if($_SESSION['conectado'] && (!isset($_POST['palabra']) || isset($_POST['abrir'])) ){ if ($seleccion!==FALSE){ echo 'Conexión establecida como '.$_SESSION['usuario']."@".$_SESSION['servidor']." en ".$_SESSION['bbdd'].'.
'; explora_BD(); } } //Ya hemos explorado y pasamos un formulario con un array $_POST['tabla'] generado por los checkboxes de tablas. else{ //registro el tiempo inicial: $tiempo_ini=microtime(); //Abro una a una las tablas y miro entre sus columnas buscando el valor pasado: foreach($_POST['tabla'] AS $indice => $valor){ $cad="SHOW COLUMNS FROM ".$_SESSION['bbdd'].".".$valor; $que=mysql_query($cad) or exit($cad); $cad_or="SELECT * FROM ".$valor." WHERE "; $nombre_columna=Array(); //Monto una cadena SQL con ORs por cada columna hallada en la tabla: WHERE columna1 LIKE "%%" OR columna2 LIKE "%%"... while($fila=mysql_fetch_array($que)){ //Genero array de nombres de columna: $nombre_columna[]=$fila[0]; //empalmo cadena de SQL $cad_or.=" ".$fila[0]." LIKE '%".$_POST['palabra']."%' OR "; } //Pinto una cabecera: echo'
'; //Pinto los nombres de las columnas con el array generado antes: echo ''; for($j=0;$j < count($nombre_columna);$j++){ echo '"; } echo ""; //Ajusto la cadena SQL creada, limpiando el último OR que sobra: $cad_or=substr($cad_or, 0,-3); //Consulto $quet=mysql_query($cad_or); //Resultados de busqueda en todas las columnas de esta tabla. if(mysql_num_rows($quet)>0){ while($filat=mysql_fetch_array($quet)){ echo ''; for($ind=0;$ind'.remarcar($filat[$ind]).""; } echo ''; } } echo '
'; echo '

Busqueda de palabra '.$_POST['palabra'].' en tabla '.$valor.':

'; echo '
'.$nombre_columna[$j]."
'; } //Pinto un enlace para volver a buscar de nuevo echo '


Volver a buscar Salir de BBDD
'; //Capturo el tiempo de nuevo. $tiempo_fin=microtime(); //Calculo y pinto estadísticas: echo "
Se ha tardado "; printf("%f",($tiempo_fin - $tiempo_ini)); echo " segundos."; } } //-------------------------------------------------------------------------------------------------- //Funcion que explora la BBDD y pinta sus tablas: function explora_BD(){ ?> Marcar todas las tablas:

'; //Consulto y pinto las tablas de la BBDD en cuestion: $cad="SHOW TABLES"; $que=mysql_query($cad); $i=0; while($fila=mysql_fetch_array($que)){ echo ''." - ".$fila[0]."
\n"; $i++; } //Pinto formulario de busqueda en BBDD: echo '
Palabra (*) Insensible a Mayusculas/Minusculas, sensible a acentos


Salir de BBDD '; } ?>