Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: UNFORMAT en 13 Junio 2011, 21:28 pm



Título: PHP, SQL y contenido aleatorio que se repite
Publicado por: UNFORMAT en 13 Junio 2011, 21:28 pm
Buenas amig@s!!

Estoy desarrollando un portal en PHP de información en el que se refresca cada X tiempo y recarga un contenido seleccionado de la base de datos, por ahora lo que tengo hecho es un RADOM ha SQL lo que me muestra un contenido aleatorio, el problema es que ha veces se repite.
Lo que quisiera hacer sería, que si hay 20 noticias en la base de datos que se muestren (una a una) pero no de forma aleatoria, sino siguiendo un orden (generado automáticamente) y que cuando llegue al fin comience de nuevo.

pero la verdad que no tengo ni idea de como hacerlo, haber si me podéis echar un cable


Salud2


Título: Re: PHP, SQL y contenido aleatorio que se repite
Publicado por: kiriost en 20 Junio 2011, 03:22 am
Si lo quieres hacer aleatorio y que no se repita te recomendaría usar una variable o array que vaya almacenando los números generados aleatoriamente y así al generarse un nuevo número aleatorio compararlo con los números que contiene el array, y si es igual a alguno no tomarlo en cuenta.

Si lo que quieres es establecer un orden específico puedes ordenar los elementos con "ORDER BY" perteneciente al código MySQL.

Tendrías que declararlo cuando realizar una query:
Código
  1. mysql_query("SELECT * FROM tabla ORDER BY id ASC");
  2. mysql_query("SELECT * FROM tabla ORDER BY id DESC");

ASC ordena los elementos en forma ascendente.
DESC ordena los elementos en forma descendente.


Título: Re: PHP, SQL y contenido aleatorio que se repite
Publicado por: barbieturico en 20 Junio 2011, 13:06 pm
Pues como te han comentado más arriba, para el tema del orden deberías usar un ORDER BY en tu sentencia SQL.
El tema de que se repita una vez que llega al final, imagino que quieres hacer una especie de carrousel de noticias o algo parecido. Personalmente no me gustan mucho, prefiero que estén estáticas ya que muchas veces intentando hacer más "atractiva" una página realmente la estás fastidiando (usabilidad, accesibilidad, etc). Si aún así sigues queriendo hacerlo, esta parte deberías hacerla desde el lado cliente, por ejemplo con javascript.
Te recomendaría que le eches un vistazo a jQuery:
http://jqueryui.com/docs/Effects/Methods

Quizá encuentres algo que te guste ;D