Foros del Web » Programando para Internet » PHP »

php + mysqsl...comprobar tabla vacia.

Estas en el tema de php + mysqsl...comprobar tabla vacia. en el foro de PHP en Foros del Web. Buenos dias, Me gustaria comprobar si una tabla en mysql esta vacia...para sacar un mensajito en la web en plan - DATOS VACIOS - o ...
  #1 (permalink)  
Antiguo 27/01/2009, 02:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
php + mysqsl...comprobar tabla vacia.

Buenos dias,

Me gustaria comprobar si una tabla en mysql esta vacia...para sacar un mensajito en la web en plan - DATOS VACIOS - o algo asi.
Lo cual lo tengo asi :

$query="SELECT * FROM solicitados";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);


y aqui ya me perdido...
  #2 (permalink)  
Antiguo 27/01/2009, 02:33
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Respuesta: php + mysqsl...comprobar tabla vacia.

Si la tabla está vacia es que no hay ninguna fila en ella (ningún insert):

Código PHP:
$query "SELECT COUNT(*) FROM mi_tabla";
$result mysql_query($query);
$num_rows = @mysql_num_rows($result);
if(!
$num_rows) {
    echo 
"La tabla está vacia";

__________________
JoniJnm.es
  #3 (permalink)  
Antiguo 28/01/2009, 02:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: php + mysqsl...comprobar tabla vacia.

algo tengo mal...mi idea es hacer si esta vacia pues muestra ESTA VACIA...y sino pues borra todo lo que haya...Me sale todo el rato ESTA VACIA. os dejo el codigo a ver si veis algo :

Código PHP:
include ("config.mysql.php");
        
$query="SELECT COUNT(*) FROM logs";
        
$link=mysql_connect($server,$dbuser,$dbpass);
        
$result=mysql_db_query($database,$query,$link);
        
$num_rows = @mysql_num_rows($link);
        if(!
$num_rows) {//SI NO HAY DATOS...
        
echo "La tabla está vacia";
        
$vaciado_log=3;
        
$_SESSION['vaciado_log']=$vaciado_log;
        } 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 :)";
        
}
        } 
  #4 (permalink)  
Antiguo 28/01/2009, 03:43
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: php + mysqsl...comprobar tabla vacia.

Compara lo que has puesto
Código PHP:
$num_rows = @mysql_num_rows($link); 
con lo que puso JoniJnm
Código PHP:
$num_rows = @mysql_num_rows($result); 
PD: durante desarrollo es mejor no usar @. Bueno, siempre es mejor no usar @, y siempre es bueno comprobar los estados devueltos por las funciones.

PD2: Tampoco es bueno usar comparaciones booleanas cuando se quieren comparar numeros. 0 y false se evaluan igual en muchas comparaciones booleanas.
  #5 (permalink)  
Antiguo 28/01/2009, 04:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: php + mysqsl...comprobar tabla vacia.

si pongo asi...lo mismo todo el rato muestra LA TABLA ESTA VACIA.

Código PHP:
include ("includes/config.mysql.php");
        
$query="SELECT COUNT(*) FROM logs";
        
$link=mysql_connect($server,$dbuser,$dbpass);
        
$result mysql_query($query);
        
$num_rows = @mysql_num_rows($result);
                if(!
$num_rows) {//SI NO HAY DATOS...
        
echo "La tabla está vacia";
        
$vaciado_log=3;
        
$_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 :)";
        
}
        } 
  #6 (permalink)  
Antiguo 01/12/2009, 11:09
Avatar de mkcfernandez  
Fecha de Ingreso: junio-2007
Ubicación: Veracruz
Mensajes: 24
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: php + mysqsl...comprobar tabla vacia.

hola chicos tengo en mi bd una table que me define unos perfiles de la empresa o sea las personas que trabajan en mi empresa pero que en algunos casos no tengo todos los datos de las personas y quisiera que automaticamente cuando se visualice la página me ponga esto N/A no actualizado en los espacios vacios de la tabla como logro esto???
  #7 (permalink)  
Antiguo 01/12/2009, 20:44
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: php + mysqsl...comprobar tabla vacia.

Cita:
Iniciado por beowulf99 Ver Mensaje
si pongo asi...lo mismo todo el rato muestra LA TABLA ESTA VACIA.

Código PHP:
include ("includes/config.mysql.php");
        
$query="SELECT COUNT(*) FROM logs";
        
$link=mysql_connect($server,$dbuser,$dbpass);
        
$result mysql_query($query);
        
$num_rows = @mysql_num_rows($result);
                if(!
$num_rows) {//SI NO HAY DATOS...
        
echo "La tabla está vacia";
        
$vaciado_log=3;
        
$_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 :)";
        
}
        } 
mysql_num_rows te devuelve la cantidad de filas afectadas en la consulta

vos preguntas "if(!$num_rows)" y eso no esta bien, la pregunta deberia ser

if($num_rows==0){ bla bla bla

Idem para if(mysql_affected_rows($link)), deberias poner la cantidad de filas correspondiente a la pregunta que queres hacer

En ningun lado veo que hayas seleccionado la base de datos, no lo pusiste o esta en el include?
  #8 (permalink)  
Antiguo 15/11/2012, 09:27
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: php + mysqsl...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:

[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 20:25.