Foros del Web » Programando para Internet » PHP »

Paginator: ¿como mostrar un mensaje cuando no hay registros?

Estas en el tema de Paginator: ¿como mostrar un mensaje cuando no hay registros? en el foro de PHP en Foros del Web. Hola amigos, Estoy mirando el script de paginator, y me surge una duda ¿cómo podría hacer para mostrar un mensaje del estilo "no se encontraron ...
  #1 (permalink)  
Antiguo 09/12/2006, 14:33
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Sonrisa Paginator: ¿como mostrar un mensaje cuando no hay registros?

Hola amigos,

Estoy mirando el script de paginator, y me surge una duda ¿cómo podría hacer para mostrar un mensaje del estilo "no se encontraron resultados", cuando al hacer la búsqueda por un determinado criterio, no encontrara ninguno?.

El código que estoy usando es el básico de paginator, el mismo del ejemplo:

Código PHP:
//Conexión a la base de datos
$con mysql_connect("localhost","tu_username","tu_password") or die (mysql_error());
mysql_select_db("tu_base",$con) or die (mysql_error());

//Sentencia sql (sin limit)
$sql "SELECT nombre FROM clientes WHERE sexo='m' ORDER BY edad";

//Ejecutamos la consulta
$result mysql_query($sql) or die (mysql_error());

//Leemos y escribimos los registros
while($row mysql_fetch_array($result)){
    echo 
$row['nombre']."<br />";


Gracias :)
  #2 (permalink)  
Antiguo 09/12/2006, 14:49
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

¿Te refieres al paginator de jpinedo, o a algún otro?
  #3 (permalink)  
Antiguo 09/12/2006, 14:52
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Sí, sí. Hablo del paginator de jpinedo.

No dejé la consulta en su web porque lamentablemente tiene el apartado de mensajes repleto de spam, por lo que no creo que se consulte mucho...

Gracias de nuevo :)
  #4 (permalink)  
Antiguo 09/12/2006, 15:04
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Pues no lo he hecho nunca, pero supongo que se podría hacer así:

Tras el include("paginator.inc.php"); se puede obtener el nº de filas recuperados con

Código PHP:
$num_rows mysql_num_rows($_pagi_result); 
Aunque creo que también podrías utilizar una variable del propio paginator que contiene el nº de filas recuperados: $_pagi_totalReg

Preguntando si su valor es 0, podrías sacar el mensaje que quisieras.

Un saludo.
  #5 (permalink)  
Antiguo 09/12/2006, 15:08
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Aún estoy muy verde como para saber hacerlo por mi mismo pero ahora mismo me pondré con ello y cuando tenga algo ya lo escribo aquí. Gracias!
  #6 (permalink)  
Antiguo 09/12/2006, 15:13
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Pues adelante. Y no te preocupes que si te atascas intentaré ayudarte.

Un saludo.
  #7 (permalink)  
Antiguo 09/12/2006, 16:15
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Probé con distintas formas de $_pagi_totalReg pero no conseguí nada


Puse esto justo antes del while que hace la paginación de resultados

Código PHP:
if ($_pagi_totalReg 0){

echo
"No se encontraron resultados";


Pero no funcionó.... ¿sabes si voy bien encaminado?. Gracias :D
  #8 (permalink)  
Antiguo 09/12/2006, 16:50
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Antes de nada, debes de tener en cuenta que el = dá un valor a una variable. Para hacer una pregunta con un if, tienes que hacerlo con ==

Código PHP:
if ($_pagi_totalReg == 0){

echo
"No se encontraron resultados";


Vas bien encaminado pero antes vamos a pensar lo que tienes que hacer:
Si te he entendido bien, tu lo que pretendes es, que si el resultado de la consulta a la tabla no devuelve ninguna fila, quieres sacar un mensaje indicando "la tabla está vacía" o "no se encontraron resultados".
Por lo tanto, como ves tienes dos situaciones distintas:
  1. Haces la consulta y la tabla está vacía. Mensaje "no se encontraron resultados"
  2. Haces la consulta y SI hay datos. Mostrar los registros de la tabla.

Con esto quiero decirte que, aunque efectivamente el sitio elegido para controlar sacar el mensaje es correcto, tienes que hacer la pregunta para que te resuelva las dos situaciones que te he comentado:

Si $_pagi_totalReg == 0
Hay que sacar el mensaje
por el contrario
Hacer el while para mostrar las filas de la tabla

En php:
Código PHP:
if ($_pagi_totalReg == 0){

    echo
"No se encontraron resultados";

} else {
    
//Leemos y escribimos los registros de la página actual
    
while($row mysql_fetch_array($_pagi_result)){
        echo 
$row['nombre']."<br />";
    }

    
//Incluimos la barra de navegación
    
echo"<p>".$_pagi_navegacion."</p>";


Espero no haberme enrollado demasiado.
  #9 (permalink)  
Antiguo 09/12/2006, 19:53
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Muchas gracias holahola

Efectivamente, la tabla sí tenía registros, pero lo que quería era un mensaje para los casos en que no coincidiera con los criterios de búsqueda. Pero muy interesante el otro punto de vista referente a preparar el script para el caso en que no existiera registro alguno (bajo mi punto de vista lo hace muchísimo más estable).

Lo he probado y funciona perfectamente. Nuevamente, muchas gracias :)

P.D. Estaría bien que jpinedo insertara esto en la próxima versión del paginator, ya que lo veo muy útil.
  #10 (permalink)  
Antiguo 10/12/2006, 03:13
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Paginator: ¿como mostrar un mensaje cuando no hay registros?

Me alegra que te funcione.

Respecto a lo que dices en tu postdata, debes de tener en cuenta que la modificación para mostrar "No se encontraron resultados", realmente no tiene nada que ver con el objetivo del Paginator de jpinedo ni de ningún otro "paginador":
Es válido para cualquier script que pretenda listar el resultado de una consulta a una tabla, (tenga paginación o no), y que en caso de que no devuelva ningún registro, se desée mostrar el mensaje.
Es por esto por lo que te indiqué en mi segunda respuesta de este hilo, que se podría detectar con la función php de mysql, mysql_num_rows(), que es más genérica:
Código PHP:
$num_rows mysql_num_rows($_pagi_result);

if (
num_rows == 0){

    echo
"No se encontraron resultados";

} else {
    
//Leemos y escribimos los registros de la página actual
    
    // etc.....


Un saludo y suerte.

PDT: Y efectivamente, donde digo "tabla vacía" quise decir que "la consulta no devuelve ninguna fila".

Última edición por holahola; 10/12/2006 a las 05:32 Razón: aclaración "tabla vacía"
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:11.