Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consultas en varias tablas

Estas en el tema de consultas en varias tablas en el foro de Mysql en Foros del Web. Hola Necesito realizar una consulta de busqueda en varias tablas pero no se exactamente como hacer. Bien, he probado esto: $dbname = 'nombredb'; if (!mysql_connect('localhost', ...
  #1 (permalink)  
Antiguo 18/02/2006, 03:14
 
Fecha de Ingreso: enero-2003
Mensajes: 23
Antigüedad: 21 años, 3 meses
Puntos: 0
consultas en varias tablas

Hola

Necesito realizar una consulta de busqueda en varias tablas pero no se exactamente como hacer.

Bien, he probado esto:
$dbname = 'nombredb';

if (!mysql_connect('localhost', 'usuario', 'pass')) {
echo 'Could not connect to mysql';
exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_row($result)) {
echo "<table border = '0'> \n";
echo "<tr>{$row[0]}</td>\n";
}
mysql_free_result($result);

?>

Con esto consigo que me muestre un listado de las distintas tablas de la db..

Luego la busqueda la he desarrollado también:

$link2 = mysql_connect("localhost", "usuario", "pass");
mysql_select_db("db", $link2);
$result2 = mysql_query("SELECT campo1, campo2, campo3, campo4 FROM
demo WHERE campo1 LIKE 'xxxx'", $link2) or die (mysql_error());
if ($row = mysql_fetch_array($result2)){

Si hago la consulta así perfecto me funciona... Claro le estoy indicando la tabla "demo" pero quiero sustituir ese demo por una variable que se corresponda con la consulta anterior (es decir con todas las tablas) para que busque los valores a lo largo de las distintas tablas...

¿como puedo hacer esto???

Gracias
  #2 (permalink)  
Antiguo 18/02/2006, 08:12
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Si quieres recuperar las tablas lo puedes hacer con la funcion mysql_list_tables de php y de ahi lo adaptas tu segunda consulta:
Código PHP:
<?php
$dbname 
'mysql_dbname';

if (!
mysql_connect('mysql_host''mysql_user''mysql_password')) {
   echo 
'No se pudo conectar';
   exit;
}
$result mysql_list_tables($dbname);
if (!
$result) {
   echo 
"No se pudo listar las tablas de la base: $dbname\n";
   echo 
'MySQL Error: ' mysql_error();
   exit;
}
while (
$row mysql_fetch_row($result)) {
   echo 
"Tabla: $row[0]\n";
}
mysql_free_result($result);
?>
y con cada fila ($row[0]) puedes hacer una consulta a cada tabla de tu base de datos con tu segunda consulta, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.