Código implementado en PHP sobre mostrar datos de consulta a la base de datos MySQL

Tengo un a tabla que se llama clasificados donde tengo muchas tuplas, y quiero que me las vaya mostrando de a 4 entonces yo hice:
En la consulta SQL asi:
$cantidad=mysql_query("select * from clasificados  where rubro=1 and permiso='s' ",$conectar);
$cant=mysql_num_rows($cantidad);
             $d=$cant/4;
            $sup=$pag *4;
            $in=$sup-4;  
$profesional=mysql_query("select * from clasificados  where rubro=1 and permiso='s' order by id Desc limit $in,$sup",$conectar); 
clasifica($profesional,$d);
function clasifica ($profesional,$d){?>
<table border ='0' width='480' cellspacing='0' cellpadding='0'>
<? 
$fila=mysql_fetch_array($profesional);
do {  
$cont=$cont+1;
         ?>
        <tr> 
          <td colspan="3"><font color="#FF9900"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
            <? Echo ofrece; ?>
            </font></b></font>     <br>
            <b><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
            <? Echo $fila["titulo"];?>
            </font> </b><br>
            <font face="Verdana, Arial, Helvetica, sans-serif" size="1"color="#666666" > 
            <? Echo $fila["descrip"];?>
            <br>
            E-mail: 
            <? Echo $fila["mail"];?>
            <br>
            Tel.: 
            <?echo $fila["tel"];
                            ?>
            <br>
            Ciudad: 
            <? Echo $fila["ciudad"];
              ?>
            </font> </td>
        </tr>
        <tr> 
          <td width="378">  </td>
          <td width="26"><a href="#"><img src="../imagen/servicios/clasificados/flechita.gif" width="16" height="15" hspace="5" border="0"></a></td>
          <td width="89"><font color="#333333" size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="../servicios/servicios.php?op=consulta&id=<? Echo $fila["id"];?>">Enviar 
            un E-mail</a></font></td>
        </tr>
        <tr> 
          <td align="left" valign="top" colspan="3" height="2" bgcolor="#FF9900"></td>
        </tr>
        <?   }
  while ($fila=mysql_fetch_array($profesional));
    ?>
      </table>
<?
If ((is_double($d))&&($d>0)){$d=$d+1;}
for ($i=1; $i<$d; $i++){
echo  "<a href=http://www.mrg.gov.ar/pruebaclasi.php?pag=".$i.">";
echo $i; echo " "; echo "</a>";
                        }
}
?>

#$pag es la variable que me indica cuantas paginas de 4 tengo.
Lo que no me anda es cuando voy a la pagina 2 ya no me hace bien la consulta (me muestra mas de 4), la pagina 1 la hace bien.

2 respuestas

Respuesta
1
El código que me has mandado es extensísimo, con lo que te voy a decir como lo hago yó, y espero que te sirva.
¿
<?
   $CUANTOS=mysql_result(mysql_query("SELECT count(*) AS cuantos FROM tabla"),0,"cuantos");
   $LIN_X_PAG=4;
   $PAGINAS=$CUANTOS/4
   $PAGINA_ACTUAL=$PAGINA+1
   // al no estar definida ninguna, ambas son 0, y la primera vez están inicializadas.
   $MOSTRADOS=mysql_query("SELECT * FROM tabla LIMIT $PAGINA_ACTUAL,$LIN_X_PAGINA");
   //...LOS MUESTRAS, ETC...
   if ($PAGINA==1){
      // NO MOSTRAR FLECHA DE RESULTADOS ANTERIORES (ESTAS EN LA PRIMERA PAGINA)
   }
   else {
      // Flecha anterior
      echo "<A href='ver.phtml?pagina=".($PAGINA-1)."'>Ant.</A>";
   }
   if ($PAGINA==$PAGINAS) {
      // NO MOSTRAR FLECHA DE RESULTADOS SIGUIENTES (ESTAS EN LA ULTIMA PAGINA)
   }
   else {
   else {
      // Flecha siguiente
      echo "<A href='ver.phtml?pagina=".($PAGINA+1)."'>Ant.</A>";
   }
?>

Esto no lo he testeado, pero tiene que funcionar.
Respuesta
1
$cantidad=mysql_query("select * from clasificados where rubro=1 and permiso='s' ",$conectar);
$cant=mysql_num_rows($cantidad);
if (empty($pag)) {//compruebo que $pag no este vacio
	$in=0; //inicializo $in	
} else {
	$in=($pag-1)*4;//doy valor a $in segun el valor de $pag
}
$d=$cant/4;//num de paginas
$profesional=mysql_query("select * from clasificados where rubro=1 and permiso='s' order by id Desc limit $in,4",$conectar);
clasifica($profesional,$d);
function clasifica ($profesional,$d){?>
<table border ='0' width='480' cellspacing='0' cellpadding='0'>
<?
$fila=mysql_fetch_array($profesional);
do {
	$cont=$cont+1;
	?>
	<tr>
	<td colspan="3"><font color="#FF9900"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
	<? echo ofrece; ?>
	</font></b></font>     <br>
	<b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
	<? echo $fila["titulo"];?>
	</font> </b><br>
	<font face="Verdana, Arial, Helvetica, sans-serif" size="1"color="#666666" >
	<? echo $fila["descrip"];?>
	<br>
	E-mail:
	<? echo $fila["mail"];?>
	<br>
	Tel.:
	<?echo $fila["tel"];
	?>
	<br>
	Ciudad:
	<? echo $fila["ciudad"];
	?>
	</font> </td>
	</tr>
	<tr>
	<td width="378">  </td>
	<td width="26"><a href="#"><img src="../imagen/servicios/clasificados/flechita.gif" width="16" height="15" hspace="5" border="0"></a></td>
	<td width="89"><font color="#333333" size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="../servicios/servicios.php?op=consulta&id=<? echo $fila["id"];?>">Enviar
	un E-mail</a></font></td>
	</tr>
	<tr>
	<td align="left" valign="top" colspan="3" height="2" bgcolor="#FF9900"></td>
	</tr>
<? }
while ($fila=mysql_fetch_array($profesional));
?>
</table>
<?
if ((is_double($d))&&($d>0)) $d=$d+1;
for ($i=1; $i<$d; $i++){
	echo "<a href=http://www.mrg.gov.ar/pruebaclasi.php?pag=".$i.">";
	echo $i; echo " "; echo "</a>";
}
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas