Bases de Datos > MySQL

 Pregunta?????

(1/3) > >>

RadicalEd:
Hola chicos de SoloCodigo, tengo una pregunta tal vez un poco crazy como yo, aunque creo que no es posible no se pierde nada con intentar.

Es posible que yo pueda saber con un select o algo parecido sobre un campo que se guarda en varias tablas (y cuando digo varias es varias), de una DB de unas 176 tablas, por que es que si me pongo a buscar tabla por tabla y revisar todos los campos para revisar si es el que necesito me muero de hambre.

Es posible???

Gracias Chao.

Mollense:
Me muero de hambre tratando de entenderte  :)

¿Estás guardando el mismo dato (Mismo valor) en distintas tablas?

¿Me darías un ejemplo?

RadicalEd:
Ejemplo, ya por ahí JuanK me explico +/- como era,  pero él mismo dice que es un camello para un novato :( .

Ejemplo: Tengo una Factura No. 10167, este valor se guarda en tabla 1, tabla 2, tabla 3, tabla n, el nombre del campo es diferente en todas las tablas; que quiero yo hacer, saber donde está ese valor '10167' en las tablas de la DB, ya que este es guardado en no se que tablas (lo de tabla 1, tabla n es para dar ejemplo) y pos me queda dificil revisar más de 300 scripts :(

ArKaNtOs:
eso esta facil, mira realiza un script en php que busque de tu base de datos todas las tablas que tengan el campo que necesites luego que hagan el query sobre cada tabla y que imprima los resultados :) :kicking:

Mollense:
Bueno. Tenía curiosidad así que lo resolví (Me costó mas de lo que creí que me costaría :ph34r: ).

Vergonzosamente no recuerdo como obtener el número y el nombre de los campos de una tabla así que usé describe. Si alguien me refresca la memoria se lo voy a agradecer.

Lo único que tenés que hacer es cambiar el nombre de las variables $valorABuscar y $base que vendría a ser la base de datos en donde buscar.

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Buscador de valores</title>
  </head>
  <body>
    <?php
      $valorABuscar="Favio";
      $base="bdforo";

      //DB--------------------------------------------------------------
      
      $link = mysql_connect("localhost", "root");
      mysql_select_db($base, $link);
      $sqlTxt = "select table_name from information_schema.tables where table_schema='$base'";  
      //echo $sqlTxt;
      $Tablas = mysql_query($sqlTxt, $link);

      //----------------------------------------------------------------
        
      $nroTablas=mysql_affected_rows($link);
      if(!$nroTablas){      
        mysql_close($link);
        echo "No hay tablas";
      }
      else{    
        while ($Tabla = mysql_fetch_row($Tablas)){
          $nombreTabla=$Tabla[0];  
          //echo $nombreTabla .":<br />";
          
          $sqlTxt = "describe $nombreTabla";
          $Campos = mysql_query($sqlTxt, $link);
    
          while ($Campo = mysql_fetch_row($Campos)){
            $nombreCampo=$Campo[0];
            //echo "----" . $nombreCampo . "<br  />";
            
            $sqlTxt = "select $nombreCampo from $nombreTabla where $nombreCampo = '$valorABuscar'";
            $resultado = mysql_query($sqlTxt, $link);
            $encontrado=mysql_affected_rows($link);
            if($encontrado){
              $registro = mysql_fetch_row($resultado);
              $valor = $registro[0];
              if($valor==$valorABuscar){
                echo "Valor encontrado en tabla: $nombreTabla, en campo: $nombreCampo<br />";
              }
            }
          }
        }
        mysql_close($link);
      }
    ?>
  </body>
</html><!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

Espero que sea util.  :comp:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa