Ver Mensaje Individual
  #1  
Antiguo 15-11-2006
estibaliz2006 estibaliz2006 is offline
Registrado
 
Registrado: nov 2006
Posts: 1
Reputación: 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