Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   ayuda con funcion mysql_num_rows (https://www.clubdelphi.com/foros/showthread.php?t=37502)

estibaliz2006 15-11-2006 09:16:52

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?

kayetano 15-11-2006 15:40:01

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.


La franja horaria es GMT +2. Ahora son las 22:10:38.

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