PHP - mostrar mensaje cuando no hay registros en la Base de datos

   
Vista:
Imágen de perfil de Mosiah

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por Mosiah (40 intervenciones) el 15/04/2014 08:59:17
Hola tengo el siguiente código el cual muestra un listado de noticias desde la base de datos de mi pagina web, pero quisiera que por favor me orientasen acerca de donde poner el mensaje de error en el caso de que no existiesen datos en la tabla noticias

Codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Obtenemos el número de registros en la tabla.
$sql = '
select count(*) id_noticia
  from noticias
';
if (false === ($res = $conn->query($sql)))
{
  echo '<p class="errorbox">Error al ejecutar la consulta en la Base de Datos, contacte al webmaster. </p>"', $sql, '": ', $conn->error;
  exit;
}
 
 
$row = $res->fetch_row();
$filmsCount = $row[0];
 
// El número de páginas que podemos mostrar.
$pagesCount = (int)ceil($filmsCount / $rowCountNoticias);
 
 
// Obtenemos el índice de la página que nos piden mostrar y nos aseguramos que esté entre 0 y $pagesCount.
$pageIndex = isset($_REQUEST['pageIndex']) ? (int)$_REQUEST['pageIndex'] : 0;
if ($pageIndex >= $pagesCount)
  $pageIndex = $pagesCount - 1;
 
 
// Obtenemos unicamente los registros de la página actual.
$offset = $pageIndex * $rowCountNoticias;
$sql = "SELECT  * FROM noticias ORDER BY id_noticia ASC
             LIMIT $offset, $rowCountNoticias
";
if (false === ($res = $conn->query($sql, MYSQLI_USE_RESULT)))
{
  echo 'Error al ejecutar la consulta "', $sql, '": ', $conn->error;
  exit;
}
$films = array();
while ($noticias = $res->fetch_object())
  $films[] = $noticias;
 
?>
 
<?php foreach ($films as $noticias) {
 
   					echo '<tr><td><input type="checkbox"></td>
    				<td>'.$noticias->titulo.'</td>
    				<td>'.$noticias->horario.'</td>
    				<td><a title="Editar noticia" href="index.php?seccion=editar-noticia&id='.$noticias->id_noticia.'"><img src="images/icn_edit.png" title="Editar publicación"></a> ·

    				<a onclick="return BorrarNoticia()" title="Borrar noticia" href="modulos/acciones/borrar-noticia.php?id='.$noticias->id_noticia.'"><img src="images/icn_trash.png" title="Borrar publicaci"></td>
    				</a>
    				</tr>';
 
			}
 
 
 
 
?>

Espero me puedan ayudar.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por xve (5522 intervenciones) el 15/04/2014 10:08:18
Hola Mosiah, cuando haces un count(*) en el sql, siempre te devuelve un registro... si no hay coincidencias devuelve 0, pero siempre devuelve un registro, por lo que la manera correcta, seria revisar si el valor es superior a 0.

Yo lo haría algo así:
1
2
3
4
5
6
7
8
9
10
$sql = '
select count(*) as Total
  from noticias
';
$res = $conn->query($sql)
if ($res[0]["Total"] == ())
{
  echo '<p class="errorbox">No se han encontrado registros en la base de datos</p>';
  exit;
}

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mosiah

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por Mosiah (40 intervenciones) el 15/04/2014 15:23:04
Me dice que algo anda mal en la linea que he modificado el código: (Parse error: parse error in)

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por xve (5522 intervenciones) el 15/04/2014 16:23:28
Uy... mil perdones, te lo puse mal...

En vez de esto:
1
if ($res[0]["Total"] == ())

Tiene que ser esto:
1
if ($res[0]["Total"] == 0)

lo siento...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mosiah

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por Mosiah (40 intervenciones) el 15/04/2014 17:17:13
Tendría que quedar así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
include ('config/admin.php');
 
$sql = 'select count(*) as Total
  from noticias
';
$res = $conn->query($sql)
if ($res[0]["Total"] === 0)
{
  echo '<p class="errorbox">No se han encontrado registros en la base de datos</p>';
  exit;
}
 
 
$row = $res->fetch_row();
$filmsCount = $row[0];
 
// El número de páginas que podemos mostrar.
$pagesCount = (int)ceil($filmsCount / $rowCountNoticias);
 
 
// Obtenemos el índice de la página que nos piden mostrar y nos aseguramos que esté entre 0 y $pagesCount.
$pageIndex = isset($_REQUEST['pageIndex']) ? (int)$_REQUEST['pageIndex'] : 0;
if ($pageIndex >= $pagesCount)
  $pageIndex = $pagesCount - 1;
 
 
// Obtenemos unicamente los registros de la página actual.
$offset = $pageIndex * $rowCountNoticias;
$sql = "SELECT  * FROM noticias ORDER BY id_noticia ASC
             LIMIT $offset, $rowCountNoticias
";
if (false === ($res = $conn->query($sql, MYSQLI_USE_RESULT)))
{
  echo 'Error al ejecutar la consulta "', $sql, '": ', $conn->error;
  exit;
}
 
 
 
$films = array();
while ($noticias = $res->fetch_object())
 
  $films[] = $noticias;
 
 
?>
 
<?php foreach ($films as $noticias) {
 
		echo '<tr><td><input type="checkbox"></td>
    				<td>'.$noticias->titulo.'</td>
    				<td>'.$noticias->horario.'</td>
    				<td><a title="Editar noticia" href="index.php?seccion=editar-noticia&id='.$noticias->id_noticia.'"><img src="images/icn_edit.png" title="Editar publicación"></a> ·

    				<a onclick="return BorrarNoticia()" title="Borrar noticia" href="modulos/acciones/borrar-noticia.php?id='.$noticias->id_noticia.'"><img src="images/icn_trash.png" title="Borrar publicaci"></td>
    				</a>
    				</tr>';
    			}
 
 
 
 
?>

Pero aún me da error de sintaxis. disculpa las molestias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por xve (5522 intervenciones) el 15/04/2014 18:57:56
Porque pones 3 iguales?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mosiah

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por Mosiah (40 intervenciones) el 15/04/2014 19:22:39
Me equivoque al poner el ultimo igual, donde escribí el código, verifique, pero persiste el problema.

disculpa las molestias, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por xve (5522 intervenciones) el 15/04/2014 21:05:52
Si haces un print_r($res[0]); que te devuelve?

Entiendo que estas conectado a la base de datos correctamente, verdad?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mosiah

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por Mosiah (40 intervenciones) el 16/04/2014 04:44:37
Hola, ya lo pude solucionar, modifique la siguiente linea:

1
2
3
4
5
6
7
8
9
10
// Obtenemos unicamente los registros de la página actual.
$offset = $pageIndex * $rowCountNoticias;
$sql = "SELECT  * FROM noticias ORDER BY id_noticia ASC
             LIMIT $offset, $rowCountNoticias
";
if (false === ($res = $conn->query($sql, MYSQLI_USE_RESULT)))
{
  echo '<td>No se ha encontrado información en la base de datos.</td>';
  exit;
}



Muchas gracias :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

mostrar mensaje cuando no hay registros en la Base de datos

Publicado por xve (5522 intervenciones) el 16/04/2014 08:41:33
Hola Mosiah, muchas gracias por compartirlo!!! lo desconocía!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar