Foros del Web » Programando para Internet » PHP »

Problema al comprobar tabla vacia.

Estas en el tema de Problema al comprobar tabla vacia. en el foro de PHP en Foros del Web. Buenos dias a todos, tengo un problema que no consigo solucionar y me ocurre al comprobar una tabla vacia. tengo el siguiente codigo: Código PHP: ...
  #1 (permalink)  
Antiguo 03/02/2009, 02:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema al comprobar tabla vacia.

Buenos dias a todos,

tengo un problema que no consigo solucionar y me ocurre al comprobar una tabla vacia.
tengo el siguiente codigo:

Código PHP:
include ("mysql.php");
        
$link=mysql_connect($server,$dbuser,$dbpass);
        
$query "SELECT COUNT(*) FROM Logs";
        
$result mysql_query($query);
        
$num_rows = @mysql_num_rows($result);
                
        if((
$num_rows)==0) {//SI NO HAY DATOS...
        
        //echo "La tabla está vacia";
        
$vaciado_log=5;
        
$_SESSION['vaciado_log']=$vaciado_log;
        
header('location:logadm.php');
        } else {

        
$query="DELETE FROM Logs WHERE 1=1";
        
$link=mysql_connect($server,$dbuser,$dbpass);
        
$result=mysql_db_query($database,$query,$link);
        if(
mysql_affected_rows($link)){
        
$vaciado_log=1;
        
$_SESSION['vaciado_log']=$vaciado_log;
        
header('location:logadm.php');
        
//echo "Todos el log ha sido borrado :)";
        

el problema es que siempre sale como si estuviera vacio.
Osea siempre da $vaciado_log=5;

Alguna sugerencia ??
  #2 (permalink)  
Antiguo 03/02/2009, 02:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al comprobar tabla vacia.

mysql_num_rows() devuelve el numero de filas por resultado...

osea, si haces un SELECT quiere decir que ¿*_num_rows puede devolver alguno??

bien, para obtener un dato preciso, debes sacarlo de tu resultado...

Código PHP:
$result mysql_query('SELECT COUNT(*) AS total FROM tabla');
$test mysql_fetch_array($result);

echo 
$test['total'];// total? 
espero te sirva, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/02/2009, 02:35
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Problema al comprobar tabla vacia.

prueba con esto

Código PHP:
 $query "SELECT * FROM Logs"
en lugar de

Código PHP:
 $query "SELECT COUNT(*) FROM Logs"
  #4 (permalink)  
Antiguo 03/02/2009, 03:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema al comprobar tabla vacia.

pateketrueke,

al poner

Código PHP:
$result mysql_query('SELECT COUNT(*) AS total FROM tabla');
$test mysql_fetch_array($result); 
luego como comprobaria si esta vacia ??

if ($test['total']==0) ??????

De todas maneras si pongo:

Código PHP:
echo $test['total']; 
no me da ningun resultado.

y el primer error que me sale es:
Warning: mysql_fetch_array(): supplied argument is not a valid result resource in...
  #5 (permalink)  
Antiguo 03/02/2009, 03:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al comprobar tabla vacia.

bueno, si lo piensas mi código no es funcional con el tuyo... ¿sera por eso el error???

osea... ¿no lo copiaste y ejecutaste como lo puse??? ¿o si???


digo, no debiste... era solo un ejemplo!

por cierto, para depurar errores has esto... (literalmente)

Código PHP:
mysql_query(/* TU SQL */) or die(mysql_error()); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 03/02/2009, 03:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema al comprobar tabla vacia.

bueno pues literalmente entonces no tengo ni puta idea, mejor me dedico a la jardineria y me meto en los foros de jardineria para preguntar por php.
  #7 (permalink)  
Antiguo 03/02/2009, 04:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al comprobar tabla vacia.

...como gustes!!

(aunque me pregunto donde queda esa sección del foro, mis yerbas ya no me ponen igual)


"literal" es, no hagas copy+paste ... entiende y analiza los ejemplos, NO todos te ponen códigos corregidos y listos para usar

veamos mi ejemplo, a tu manera...

Código PHP:
// ...

$query "SELECT COUNT(*) FROM Logs";
$result mysql_query($query) or die(mysql_error());
//$num_rows = @mysql_num_rows($result); 

$total mysql_result($result,0); // COUNT(*)


if ( ! $total)
{
  
// ¿ vacio ?
}

// ... 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 03/02/2009, 06:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema al comprobar tabla vacia.

me dice que:

Warning: mysql_result(): supplied argument is not a valid result resource in...

Última edición por beowulf99; 03/02/2009 a las 09:56
  #9 (permalink)  
Antiguo 15/11/2012, 09:25
Avatar de Kloud_Omnislash  
Fecha de Ingreso: noviembre-2012
Ubicación: Gelves, Sevilla
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Problema al comprobar tabla vacia.

Ojo con la ejecución de la consulta con SELECT COUNT (*) y luego usar mysql_num_rows($result).

La consulta generará una fila con el numero de registros encontrados, es decir, que si queremos comprobar que la tabla está vacía, ojo después con el IF, porque de resultado tenemos 1 fila.

Lo ideal es:

Código PHP:
$sql="SELECT * FROM tabla";
$result=mysql_query("$sql");
$rows mysql_num_rows($result);
    
if (
$rows 0) {
 
/*Hay más de 0 filas, es decir, que hay registros, hacer lo que haya que hacer*/                
} else {
 
/*No hay registros,*/

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 09:40.