Comunidad de diseño web y desarrollo en internet online

Averiguar cuantas tablas tienen datos

Citar            
MensajeEscrito el 25 May 2007 12:42 am
Hola amigos, estoy creando dentro de una aplicación web que trabaja con Flas, Php y MySql, un apartado de estadisticas, y me he encontrado con esto:

Tengo estas tablas (ejemplo):
01_01
01_03
01_06
01_07
01_08
01_09 .....
02_01
02_03
02_06
02_07
02_08
02_09 .....
....

Necesito hacer un filtrado de información en donde me agrupe a las que empiezan con 01(ejemplo) y recorrer:
01_01
01_03
01_06
01_07
01_08
01_09 .....
para averiguar cuantas tablas tienen más de un registro, y enviar el resultado a Flash.

De igual manera, saber más datos, como por ejemplo, cuantas tablas están cerradas, cuantas tablas estan pendientes, pero todo esto ya lo tengo estructurado, pero no sé como enviar todas estas funciones a Flash.

Si alguien me puede ayudar, se lo agradeceria mucho.

Saludos.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 01:05 pm
Aqui tienes un algorito:
Crear un Array que contenga todas las tablas ARRAY[]= (tabla1, tabla2,..)

function cargatablas(condicion){
link= conect();
foreach(array as tablas){
if(substring(tablas,0,2)=condicion){
$sql=select * from tablas
$resp=mysqlquery($sql, link)
$numallrows=mysqlnumtablas($resp)
if($numallrows>0){
while($row=mysqlfewarray($resp)){
echo "<estructura>".$row[nombre dato]."</estructura>";
}
}
}
}
}

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 01:05 pm
Aqui tienes un algorito:
Crear un Array que contenga todas las tablas ARRAY[]= (tabla1, tabla2,..)

Código :

function cargatablas(condicion){
link= conect();
foreach(array as tablas){
if(substring(tablas,0,2)=condicion){
$sql=select * from tablas
$resp=mysqlquery($sql, link)
$numallrows=mysqlnumtablas($resp)
if($numallrows>0){
while($row=mysqlfewarray($resp)){
echo "<estructura>".$row[nombre dato]."</estructura>";
}
  }
    }
      }
        }

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 02:27 pm
Muchas gracias por la ayuda, pero fijate que me marca error en algo que estoy haciendo, te pego mi codigo php

Código :

<?php
include ("conf.inc.php");

$tablas = array('01_01', '01_02','01_03');

function cargatablas (condicion){
   foreach(array as tablas){
      if(substring(tablas,0,2)=condicion){
         $sql=select * from tablas;
         $resp=mysqlquery($sql);
         $numallrows=mysqlnumtablas($resp)
            if($numallrows>0){
               while($row=mysqlfewarray($resp)){
                  echo "<estructura>".$row[nombre dato]."</estructura>";
               }
              }
       }
    }
}
?>


Gracias.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 02:28 pm
El error es este:

Código :

Parse error: parse error, unexpected T_STRING, expecting ')' in c:\appserv\www\backend\temp.php on line 6

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 03:14 pm
OJO, eso que te di es un algoritmo, ahi algunos codigos que no son correctos, yo creo que tu sabes PHP.
Un error que encontre es que no vi en ningun lado que te conectas a la DB.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 03:27 pm
York, fijate que hice esto:

Código :

<?php
include ("conf.inc.php");

$matriz = array('01_01', '01_02','01_03');

function cargatablas ($condicion){
   foreach ($matriz as $tablas){
      if(substring($tablas,0,2) == $condicion){
         $resp = mysql_query("SELECT * FROM $tablas");
         $numallrows = mysql_num_rows($resp);
            if($numallrows>0){
               while($row = mysql_fetch_array ($resp)){
                  echo "<estructura>".$row[nombre_dato]."</estructura>";
               }
              }
       }
    }
}
?>


Fuí evaluando paso a paso lo que me estabas diciendo, me devuelve en blanco, si le puedes dar una revisada, te lo agradeceria, por este lado me conecto a la BBDD (include ("conf.inc.php");).

Saludos.

Gracias

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 03:29 pm
Eso que tienes ahi es un error de seguridad, yo pense que era la libreria de funciones.-
Yo creari una funcion para conectarme.-
Ok deja revisar.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 03:33 pm
Disculpame antes de ayudarte me puedes decir para que quieres hacer eso?

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

opera
Citar            
MensajeEscrito el 25 May 2007 03:37 pm
Hola NeoHunter, obteniendo estos datos, puedo crear en Flash una especie de estadisticas, cuantas tablas han sido empezadas a utilizarse por los usuarios, que tablas están vacias, eso le dice al administrador que tablas están empezadas, que tablas están sin empezar.

Saludos

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 03:48 pm

atomoclip escribió:

Hola NeoHunter, obteniendo estos datos, puedo crear en Flash una especie de estadisticas, cuantas tablas han sido empezadas a utilizarse por los usuarios, que tablas están vacias, eso le dice al administrador que tablas están empezadas, que tablas están sin empezar.

Saludos


A mi parecer, creo que tu base de datos esta mal, hasta ahora no concibo una aplicación que conste de ese tipo de base de datos.

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox
Citar            
MensajeEscrito el 25 May 2007 04:02 pm
Gracias por tu parecer Darel, trataré de buscar una solución, fijate que la aplicación funciona sin ningún problema, el cliente agregó la parte de estadisticas y en eso estoy.

Saludos

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 04:03 pm
No entiendo para que quieres mostras el uso que le tienen los usuarios por cada una de las tablas.-
Bueno por lo que creo tu no necesitas ver los datos de la tabla, si no el numero que tiene cada una.-

Código :


<?php
$condicion= ""; //DEFINO CONDICION
include ("conf.inc.php");
$matriz = array();
$matriz ('01_01', '01_02','01_03');
foreach ($matriz as $tablas){
if(substr($tablas,0,2) == $condicion){
$resp = mysql_query("SELECT * FROM $tablas");
$numallrows = mysql_num_rows($resp);
if($numallrows>0){
echo $numallrows;
}else{echo "0";}
            }
                  }
?>

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 04:12 pm
York, te traduzco lo que deseo hacer: tengo 17 cajones, cada cajón puede tener como máximo 67 carpetas, algunos cajones pueden tener 10, 30, 60, etc. carpetas, no es un numero fijo, identifico cada carpeta de esta manera: 15_03 (cajón 15, carpeta número 03), lo que yo deseo es: averiguar si el cajón 15 (por un decir) cuantas carpetas contienen aunque sea un registro, si contienen un registro, es que esa carpeta ya empezó a usarse, sumo todas las carpetas del cajón 15, y digo: el cajón 15 tiene 12 carpetas utilizandose, envio la variable a FLash y genero mi estadistica.

Gracias por tu ayuda York.

Saludos

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 05:24 pm
Para obtener información acerca de las tablas encontré ésto:

Código :

show table status from Nombre_BD like 'condicion'

Donde: En condición agregas el patrón a buscar en el nombre de la tabla, es decir, si quieres todas las que sean 01; pues sustituyes:

Código :

show table status from Nombre_BD like '01_%'

Te regresa información bastante completa, entre ellos, dos campos llamados Rows y Name, si la tabla no tiene registros, Rows aparece con valor 0, sería cuestión de que recorrieras todos los registros, si Rows es diferente de 0, lo imprimes.

Importante: No sé en que versiones funciona, pruébalo y me cuentas.

Saludos!

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox
Citar            
MensajeEscrito el 25 May 2007 05:28 pm
$matriz = array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08');
$contador = 0;

foreach ($matriz as $tablas){
$resultado= mysql_query("SELECT * FROM $tablas");
$numero_celdas = mysql_num_rows($resultado);
if ($numero_celdas > 0){
$contador = $contador+1;
}
}
$total_creados = $contador;

Listo, trabaja de maravillas.

Saludos a todos

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 05:30 pm
Definitivamente esta mal enfocada la estructura de tu db. Eso que quieres hacer lo puede hacer mysql sin necesidad de usar php.

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

opera
Citar            
MensajeEscrito el 25 May 2007 06:04 pm

atomoclip escribió:

$matriz = array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08');

No puede ser.

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox
Citar            
MensajeEscrito el 25 May 2007 08:02 pm
A mi tambien me a funcionado de esta manera:

Darel escribió:

atomoclip escribió:

$matriz = array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08');

No puede ser.

Pero la correcta es

Código :

$matriz = new array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08');

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 08:08 pm
Atomoclip eso que hicistes te dice el numero de tablas que contienen mas de 0 datos, osea el numero de tablas que no estan vacias.-
En cuando a esa explicacion que me distesn no la entendi muy bien:
Cajones= tablas
Carpetas= filas de cada tabla
???
NO te he podido responder antes.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 08:27 pm
cajones, si, tablas, carpetas, filas.
Muchas gracias.

Sabes, es que el cliente se le ocurrió hacer esto cuando ya todo estaba creado, pero ya resultó, lo que quiero hacer es como hago el array automaticamente:

He hecho esto:
envio esta variable (dependencia) al PHP, asi se, si es 01, 02,03 (número de dependencia a la que corresponde, ya que son 17)

$inicializar = crear_array($HTTP_GET_VARS['dependencia']);
print $inicializar;

function crear_array ($dependencia){
$resultado= mysql_query ("SELECT * FROM tabla WHERE dependencia = $dependencia") or die ("Query invalido");
while ($row = mysql_fetch_array ($resultado)) {
$dato = $row[tabla];
echo "$dato \n";
}
//Ejecuto la función: creados();
}

La pregunta es, como puedo guardar el array completo en una variable. Desde ya muchas gracias y por su tiempo, gracias York, gracias Darel.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 09:56 pm
No entendi eso de 'dependencia' :S
Quieres si quieres crear un arreglo con varias variables
Ej:
misvalores:"var1-var2-var3-var4-var5"
$mlRecord = array();
$mlRecord=explode(misvalores,"-")

Obtendras:
$mlRecord[3] te devolvera "var4"

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 25 May 2007 10:27 pm
perdon, la dependencia es el identificador (ejemplo 01), ya que son 17 dependencias, recuerdas sobre el array cuando empezamos ($matriz = array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08'), este array lo deseo generar dinamicamente,
cuando el usuario desea obtener información, flash envia al php esta variable, lo que deseo es que el array se haga dinamicamente ya que las tablas (01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08,...) las tengo declaradas en una tabla aparte.

$inicializar = crear_array($HTTP_GET_VARS['dependencia']); //Flash envia el numero de dependencia
print $inicializar;

function crear_array ($dependencia){ //Esta función empieza a crear el array
$resultado= mysql_query ("SELECT * FROM tabla WHERE dependencia = $dependencia") or die ("Query invalido"); //consulto a la tabla, y le digo que me liste todos las similitudes de dependencia (01)
while ($row = mysql_fetch_array ($resultado)) {
$data = array($row['tabla']); // aqui es mi problema, como hago que en una variable se almacene todo el array
} //ya teniendo el array creado, inicializo la función que me dice (gracias al array) que tablas tienen al menos un registro creado
//Ejecuto la función: creados();
}

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2007 10:42 pm

york3rs escribió:

A mi tambien me a funcionado de esta manera:

Darel escribió:

atomoclip escribió:

$matriz = array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08');

No puede ser.

Pero la correcta es

Código :

$matriz = new array('01_01', '01_02','01_03','01_06','01_07','01_67','02_01','01_08');


No, york3rs, me refería a la manera tan "directa" de utilizar datos que a mi parecer son dinámicos. Es por eso que envié la solución anterior, ya que pensé que no se sabía cuales tablas ya estaban creadas.

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox
Citar            
MensajeEscrito el 26 May 2007 01:21 pm
facil:

Código :

$condicion= ""; //DEFINO CONDICION
include ("conf.inc.php");
$matriz = array();
$resp = mysql_query("SELECT * FROM $tablas");
$resp=mysqlquery($sql,$link);
$numallrows = mysql_num_rows($resp);
if($numallrows>0){
while($row=$row = mysql_fetch_array ($resp)){
$matriz .=$row["columna"];
}
}



$mlRecord = array();

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.