Foros del Web » Programando para Internet » PHP »

Saber si hay 0 resultados en un select

Estas en el tema de Saber si hay 0 resultados en un select en el foro de PHP en Foros del Web. Pues eso... Es algo tan básico, pero no consigo hacerlo ... Quiero lanzar una consulta, y si no hay registros "válidos", es decir.. 0... que ...
  #1 (permalink)  
Antiguo 26/07/2011, 01:22
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 21 años, 3 meses
Puntos: 1
Saber si hay 0 resultados en un select

Pues eso...
Es algo tan básico, pero no consigo hacerlo ...
Quiero lanzar una consulta, y si no hay registros "válidos", es decir.. 0... que haga una cosa.. y si sí hay válidos.. otra...

he probado con sybase_num_rows, num_array.. pero nada..
Ayuda, por favor...
  #2 (permalink)  
Antiguo 26/07/2011, 01:27
 
Fecha de Ingreso: julio-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Saber si hay 0 resultados en un select

Código PHP:
Ver original
  1. $total campos = mysql_num_rows(lo que te trae la consulta)
  2. if($total_campos == 0)
  3.  {
  4.     echo 'NO HAY REGISTROS';
  5.  }
  6.  
  7. o
  8. if(count(lo que te trae la base de datos) == 0)
  9.  {
  10.   echo 'NO HAY REGISTROS';
  11.  }
o
directo desde la base de datos con
Código MySQL:
Ver original
  1. SELECT COUNT(*) campos1,campo 2 FROM tabla
la consulta va a contar los registros de la base de datos y aparte te va a devolver los campos que selecciones en este caso campo1 y campo2
  #3 (permalink)  
Antiguo 26/07/2011, 02:02
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 21 años, 3 meses
Puntos: 1
Respuesta: Saber si hay 0 resultados en un select

No me funciona..
Pongo el código a ver si dáis con la tecla...

Código PHP:
<?php
include("conex.php");
//Recogemos el valor pasado por URL
$clave $_GET['id'];

//Comprobamos si el usuario que ha activado esta dirección existe en la base de datos
//y recogemos de la base de datos users_temp los campos para insertar en la base de datos USUARIOS

if($clave <> ""){
        
$link=Conectarse(); 
        
$sdb "empleopruebas";
        
mysql_select_db($sdb,$link); 

        
$sql "select * from users_temp where txt_Activ = '$clave'";
        
$resultado=mysql_query($sql,$link) or die (mysql_error());
        
        
$filas mysql_num_rows($resultado)
        if (
$filas == 0) {
            echo 
"No se localiza su código de registro.<br>Es posible que su haya expirado el plazo para confirmar el alta, o que ya hubiera activado la cuenta anteriormente.<br>Pruebe a registrase de nuevo.<br>Gracias.";
        
//    mysql_free_result($resultado); // libera los registros de la tabla
        //mysql_close(); // cierra la conexion con la base de datos
        
} else {   
        
        while (
$registro mysql_fetch_array($resultado)) {
            
$nombre $registro['nombre'];
            
$username $registro['usersTemp'];
            
$password $registro['password'];
            
$email $registro['email'];
        }
        
        
mysql_free_result($resultado); // libera los registros de la tabla
    
        
if(insertarRegiAct($nombre$username$password$email)){
            echo 
"Tu cuenta ha sido activada correctamente.";
            
            
//Eliminar el registro temporal
            
$sqldelete "delete from users_temp where txt_Activ = '$clave'";
            
mysql_query($sqldelete$link) or die (mysql_error());
            
            
//ENVIAR MAIL DE QUE LA CUENTA HA SIDO ACTIVADA
            //envioMail_regis();
            
mysql_close(); // cierra la conexion con la base de datos
        
}            
        else
            echo 
"<h1 style=color:red>Tu cuenta NO ha sido activada correctamente</h1>";
            
mysql_close(); // cierra la conexion con la base de datos
        
// fin del if de no encuentra la clave
}else
echo 
"Los datos proporcionados no son los correctos.<br>Es posible que los datos del registro no hayan sido correctos.<br>Pruebe a registrase de nuevo.<br>Gracias.";
mysql_close(); // cierra la conexion con la base de datos
  
function insertarRegiAct($name_$username_$password1_$email_){
        
$link=Conectarse(); 
        
$sdb "empleopruebas";
        
mysql_select_db($sdb,$link); 
        
        
$inserta"insert into usuarios (nombre,usuario,password,email,fecAlta) values ('$name_','$username_','$password1_','$email_',CURDATE())";
        
$resultado4=mysql_query($inserta,$link) or die (mysql_error());
        
        if (!
$resultado4)
            return 
false;
        else
            return 
true;
  }
  
?>
Lo que pretendo es que si llega el argumento id vacio.. muestra el echo del final.. y si llega con un id que no existe en la bd.. pues mostrarle otro echo.
En caso de que exista.... hacer la parte principal del código...

Gracias de antemano
  #4 (permalink)  
Antiguo 26/07/2011, 13:06
 
Fecha de Ingreso: julio-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Saber si hay 0 resultados en un select

$filas = mysql_num_rows($resultado)
if ($filas > 0)
{
tu while
}
else
{
no encunetra...
}
  #5 (permalink)  
Antiguo 26/07/2011, 13:10
 
Fecha de Ingreso: noviembre-2007
Mensajes: 25
Antigüedad: 17 años
Puntos: 1
Respuesta: Saber si hay 0 resultados en un select

Veo bien tu código pero no será que le hace falta el " ; " despues de
$filas = mysql_num_rows($resultado)

?
  #6 (permalink)  
Antiguo 26/07/2011, 23:33
 
Fecha de Ingreso: julio-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Saber si hay 0 resultados en un select

juanluis911 tiene razon le falta el ;
  #7 (permalink)  
Antiguo 26/07/2011, 23:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 21 años, 3 meses
Puntos: 1
Respuesta: Saber si hay 0 resultados en un select

Gracias a todos...

Etiquetas: registro, resultados, select
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 13:07.