Ver Mensaje Individual
  #10 (permalink)  
Antiguo 10/04/2012, 07:46
ILuzbel
 
Fecha de Ingreso: septiembre-2011
Mensajes: 106
Antigüedad: 12 años, 7 meses
Puntos: 19
Respuesta: Anterior, siguiente y random en cada post.-

Cita:
Iniciado por CHuLoSoY Ver Mensaje
La solución de @zalito12 es la óptima. No os compliquéis con consultas inútiles de si existe la id o si no existe, pues imaginaos que del id 20 al 25 no hay ninguno, son cuatro consultas para comprobar si existe una maldita id, cuando esto se hace directamente con SQL.

Saludos.
La mia es una de las posibles soluciones, se que la de zalito12 es la mas optima. y si yo quisiera perderia tiempo con las consultas que tu dices inutiles, porque al final daria el mismo resultado.

..::EDITADO::..

Ok ya termine los creditos son de zalito12, asi serian los botones para ir adelante y atras:

Código PHP:
Ver original
  1. $prev = mysql_fetch_assoc(mysql_query("SELECT id FROM tutabla WHERE id < '".$_GET['id']."' ORDER BY id DESC LIMIT 0,1"));
  2. $next = mysql_fetch_assoc(mysql_query("SELECT id FROM tutabla WHERE id > '".$_GET['id']."' ORDER BY id ASC LIMIT 0,1"));
  3.  
  4. echo ($prev['id'] > 0)? "<a href=\"http://dominio.com/post/".$prev."/\">« Pagina anterior</a>" : "<a>« Pagina anterior</a>" ;
  5. echo ($next['id'] > 0)? "<a href=\"http://dominio.com/post/".$next."/\"> Siguiente pagina » </a>" : "<a>Siguiente pagina »</a>";

Y este seria el codigo que te permite verificar si existe o no el post
Código PHP:
Ver original
  1. //ahora para el condicional primero tienes que hacer un select para verificar si el post existe
  2. $res=mysql_fetch_assoc(mysql_query("SELECT COUNT(*) FROM posts WHERE id=".$_GET['id']));
  3. //hacemos un condicional
  4. if($res != 0):
  5.     //si es difente de 0 mostramos el post
  6. else:
  7.     //si es igual a 0 lo redireccionamos
  8.     $anterior = mysql_fetch_assoc(mysql_query("SELECT id FROM posts WHERE id < '".$_GET['id']."' ORDER BY id DESC LIMIT 0,1"));
  9.     if($anterior['id'] != 0):
  10.         //si el id obtenido es diferente de 0 redireccionamos
  11.         header ("Location: http://dominio.com/post/".$anterior['id']."/");
  12.     else:
  13.         //si el id obtenido es igual a 0 redireccionamos al siguiente
  14.         $siguiente = mysql_fetch_assoc(mysql_query("SELECT id FROM posts WHERE id > '".$_GET['id']."' ORDER BY id ASC LIMIT 0,1"));
  15.         header ("Location: http://dominio.com/post/".$siguiente['id']."/");
  16.     endif;
  17. endif;

Saludos...

Última edición por ILuzbel; 10/04/2012 a las 08:28