Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2006
estibaliz2006 estibaliz2006 is offline
Registrado
 
Registrado: nov 2006
Posts: 1
Poder: 0
estibaliz2006 Va por buen camino
Question ayuda con funcion mysql_num_rows

muy buenas a todos. tengo una consulta a una base de datos que me muestra resultados y me los pagina. el código que utilizo es el siguiente:

/////////////////////////////
<?php
$con = mysql_connect("localhost", "usuario", "admin") or die (mysql_error());
mysql_select_db("bd",$con) or die (mysql_error());



//Sentencia sql (sin limit)
$_pagi_sql = "SELECT * FROM tabla ORDER BY id DESC";


$cols = 1;


$_pagi_cuantos = 4;

include("paginar.php");



?>


<?
$_pagi_nav_num_enlaces = 12;

$_pagi_mostrar_errores = false;

$_pagi_conteo_alternativo = true;

$_pagi_propagar = array("id");

$filas = 4;


?> <?php

for ($i = 0; $i <= $filas; $i++)

{
echo "<tr>";
for ($j=0; $j < $cols ; $j++)
{

$row = mysql_fetch_array($_pagi_result);
if ($row["texto"] == "")
{
echo ""; }
else
{
?>

<?
echo ('<TD>'.$row["nombre"].'</td>');
echo ('<td>'.$row["apellidos"].'</td></tr>');


}

}



?></TR> <tr><td><DIV ALIGN="center"><?
}
echo"<p>".$_pagi_navegacion."</p>";



?></DIV>
//////////////////////////////
el tema está en que quiero que cuando en la base de datos no haya ningún registro, aparezca algún mensaje como "actualmente no existen registros" o algo así. he visto algo parecido en el foro pero no soy capaz de aplicarlo en mi caso. podéis ayudarme? es urgente. gracias.
me comentaron que para solucionar mi problema, debía poner la frase esa que quiero en esta expresión que ya tenía:
if ($row["texto"] == "")
{
echo ""; }
en el echo poner lo de "actualmente no existen registros". desgraciadamente, si opto por esa opción, como he definido que debe haber 4 filas, me aparecen 4 veces la expresión que quiero poner y no únicamente una como yo quiero. aparece algo así:
no hay registros
no hay registros
no hay registros
no hay registros
me dijeron que la solución quizás estaría en un contador de vacíos, con lo cual, hice esto:
///////////////////////////////////
$vacios=0;
for ($i = 0; $i <= $filas; $i++)

{

echo "<tr>";
for ($j=0; $j < $cols ; $j++)
{

$row = mysql_fetch_array($_pagi_result);
if ($row["texto"] == "")
{
echo "";
$vacios++;
}
else
{
?>

<?
echo ('<TD>'.$row["nombre"].'</td>');
echo ('<td>'.$row["apellidos"].'</td></tr>');
}

}
if ($vacios==$filas)
{
echo"no hay registros en el BD.";
}
/////////////////////////
el problema es que con esta opción, efectivamente, si no hay registros, me da el mensaje de "actualmente no existen registros" y sólo me lo da una vez (el problema de las cuatro veces anterior se solucionó con esta alternativa). pero el tema está en que cuando hay registros, me da el registro y debajo también me da el mensaje.
yo estoy probando con la función mysql_num_rows()

if(mysql_num_rows($_pagi_sql)==0)
echo ('<tr><TD colspan=4 class=text3 ALIGN=center>no registros</td></tr>');
else

el problema es qué demonios estoy haciendo mal. me explico: si pongo esto al principio, después de la consulta, es decir, después de
$_pagi_sql = "SELECT * FROM tabla";
soluciono el problema en parte. por qué en parte? pues porque si no hay registros, sí que me aparece el mensaje "no hay registros"; pero cuando hay algún registro insertado, me sigue dando este mensaje, y después, además, el registro. con lo cual, estoy diciendo que no hay registros y además, estoy mostrando el registro que hay.

eso si lo pongo ahí. si por el contrario lo situo más abajo, el problema es que me da el ya conocido "no hay registros" cuatro veces, y no una única vez.


ya no sé lo que voy a intentar porque estoy bloqueada y necesito vuestra ayuda. por favor, ayudadme, como hago?
Responder Con Cita
  #2  
Antiguo 15-11-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

Primero, bienvenido a clubdelphi.
Segundo, te aconsejo que utilices la guia de estilos del club para la próxima vez que escribas un post, existen etiquetas para formatear el mensaje y que sea más legible.
Tercero tu problema se arreglaría con un simple:
Código PHP:
...
if( 
mysql_num_rows$_pagi_result ) ) {
// aquí metes los bucles for para mostrar los datos.
} else {
   echo 
"no hay registros";
}
... 
suponiendo que $_pagi_result sea el resultado de mysql_query( $_pagi_sql ) sin ningún tipo de limitación. Veo que no proporcionas el código del archivo paginar.php por lo que no se realmente que guarda esta variable.

Por último este trozo de código lo debes poner justo después de include("paginar.php");

Y ya para finalizar
Cita:
Empezado por estibaliz2006
... es urgente. gracias.
no puedes pedir ayuda de este tipo con urgencia, en un foro se piede ayuda y te la gente te responderá cuando pueda, si te responden.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con la función Right Javi2 SQL 5 27-12-2007 21:59:57
Ayuda con Funcion edelphi Varios 3 17-07-2006 06:24:03
Ayuda con funcion Format JulioGO Varios 1 12-05-2005 02:00:05
Ayuda con una función McRight2k Varios 1 13-08-2003 21:47:04
ayuda con sql y la funcion suma romfrost13 Firebird e Interbase 1 04-08-2003 20:46:43


La franja horaria es GMT +2. Ahora son las 06:35:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi