Tengo una base de datos que contiene unas cien (100) tablas con identica estructura. Estas tablas clasifican la información que un grupo de usuarios registra. Dicha información se guarda en una u otra tabla dependiendo de ciertos parámetros desarrollados en PHP.
En fin, en dichas tablas hay un campo que contiene un número 1 o 2. Cada usuario al registrar su información se le adjudica (dependiendo de otros criterios) un uno (1) o un dos (2).
¿Cuál es la idea?... Consiste en tomar toda la base de datos con todas sus tablas y buscar cuantos unos (1) y cuantos dos (2) tiene ese usuario en el momento de loguearse. Lo que quiero decir es que no necesito una estadística general para todos, solamente para el usuario que se encuentra logueado.
Así, el parámetro inicial sería identificar al usuario y asignarle una variable. A manera de ejemplo incluyo la siguiente variable:
Código :
$usuario = 'pepe';
Por su puesto, antes listo todas las tablas contenidas en la base de datos:
Código :
$sql = "SHOW TABLES FROM $basededatos"; $result = mysql_query ($sql); while ($row = mysql_fetch_row ($result)) { // Hago la consulta para el numero 1 $sql1 = "SELECT * FROM " .$row[0]. " WHERE usuario = '$usuario' AND codigo ='1' "; $result1 = mysql_query ($sql1) or die ('Query failed: ' . mysql_error()); $num1 = mysql_num_rows($result1); $total_sql1 += ($num1); // Hago la consulta para el numero 2 $sql2 = "SELECT * FROM " .$row[0]. " WHERE usuario = '$usuario' AND codigo ='2' "; $result2 = mysql_query ($sql2) or die ('Query failed: ' . mysql_error()); $num2 = mysql_num_rows($result2); $total_sql2 += ($num2);
Con este pequeño código no obtengo ningún problema de sintaxis o de expresiones; pero sólo obtengo el resultado de la primera tabla y no de todas las cien que tengo en mi base de datos.
Pregunta...
¿Cómo puedo hacer para que me devuelva el resultado de todas las tablas y no solo de la primera?
Gracias por vuestra ayuda.
Andrew P.