Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Script en PHP que muestra un libro aleatorio a partir de un array de libros


Un script que dispone de un array de libros y muestra uno de ellos escogido aleatoriamente, en un recuadro de una página web.


13/9/04 - Vamos a ver un pequeño script que muestra un recuadro en una página web con un libro, que se ofrece para la venta, seleccionado aleatoriamente entre un conjunto de posibilidades.

El script se realiza utilizando un conjunto de libros almacenado en un array. Podía haberse utilizado una base de datos para almacenar los distintos libros, pero hemos utilizado un array -o tabla- por dos razones. La primera, porque este código lo hemos sacado de una página que no hace conexiones con bases de datos, por lo que teníamos que utilizar un array y cargar los datos en el código de la propia página. La segunda, razón tiene un sentido didáctico, porque nos sirve para hacer un ejemplo con arrays de dos dimensiones en PHP.

El ejercicio es muy simple. Podemos separarlo en tres bloques. 1) La carga de los datos del array de libros, 2) la generación de un número aleatorio para acceder a un libro al azar entre todos los posibles del array o tabla, y 3) la muestra de un recuadro en la página que obtiene los datos del array de libros, para mostrar el libro aleatorio.

La carga de datos se puede ver a continuación. Primero vamos a ver la creación de 10 arrays con los datos de cada uno de los libros. En concreto, de cada libro se almacenan los datos de interés, como su nombre, dirección con la que enlazar los enlaces para la compra y a imagen que habría que mostrar de cada libro. Más tarde, incluiremos esos arrays como distintas casillas de otra tabla, generando un segundo array que tendrá dos dimensiones. La primera será cada uno de los libros y la segunda cada una de las propiedades de los libros.

//creamos un conjunto de arrays con todos los libros que se quieren rotar aleatoriamente
$libro1 = array("Apache Práctico","http://www.libreria.com/Apache-Practico-n29833i.htm","29833.jpg");
$libro2 = array("Fotografía Digital para Profesionales","http://www.libreria.com/Fotografia-digital-para-profesionales-n37228i.htm","37228.jpg");
$libro3 = array("Java 2 Versión 1.4","http://www.libreria.com/Java-2-version-1-4-n10575i.htm","10575.jpg");
$libro4 = array("Hacker","http://www.libreria.com/Hacker-n10655i.htm","10655.jpg");
$libro5 = array("Música Digital","http://www.libreria.com/Musica-Digital-n10313i.htm","10313.jpg");
$libro6 = array("El Arte de los Juegos 3D","http://www.libreria.com/El-arte-de-los-juegos-3D-n10423i.htm","10423.jpg");
$libro7 = array("Wireless. Los mejores trucos","http://www.libreria.com/Wireless-Los-mejores-trucos-n27052i.htm","27052.jpg");
$libro8 = array("Hardware y componentes","http://www.libreria.com/Hardware-y-componentes-Edicion-2004-n10622i.htm","10622.jpg");
$libro9 = array("Consigue las Mejores Fotos con Tu Cámara Digital","http://www.libreria.com/Consigue-las-mejores-fotos-con-tu-camara-digital-n10310i.htm","10310.jpg");
$libro10 = array("DVD, DIVX y otros Formatos de Vídeo Digital","http://www.libreria.com/DVD-DivX-y-otros-formatos-de-Video-Digital-n10506i.htm","10506.jpg");

//creamos un array con todos los libros que deseamos que roten
$libros = array($libro1, $libro2, $libro3, $libro4, $libro5, $libro6, $libro7, $libro8, $libro9, $libro10);
//el resultado de crear este segundo array (que es un array de arrays) es un nuevo array de dos dimensiones.


El segundo bloque corresponde con la creación de un número aleatorio para aceder a un libro al azar de entre todos los posibles del array. Para ello debemos obtener un número que se encuentre entre el cero y nueve. Nueve es el número de libros posibles, que corresponde con las posiciones del array $libros menos uno.

//generamos un número aleatorio entre cero y el número de posiciones del array menos uno (los arrays en php empiezan en la posición cero)
srand((double)microtime()*1000000);
$valor_aleatorio = rand(0,count($libros)-1);


Para acabar, tenemos un código HTML que muestra un recuadro con un libro. Los datos del libro que mostrar se obtienen del array, accediendo por el índice obtenido aleatoriamente. Dada la variable aleatoria que tenemos, que se llama $valor_aleatorio, accederíamos al libro aleatorio con este código:

$libros[$valor_aleatorio]

Como el libro es a su vez otro array, para acceder a cada una de las posiciones utilizaríamos un índice. Para acceder al título del libro, tenemos que utilizar el índice primero:

$libros[$valor_aleatorio][0]

El código del recuadro quedaría de esta manera.

<table width="250" cellspacing="0" cellpadding="1" border="0" style="border-width: 1px; border-color: 808050; border-style: solid;">
<tr>
<td class=titcol><b>LIBRO RECOMENDADO</b></td>
</tr>
<tr>
<td class=fuente8 style="line-height:17px;"><table width=100% border=0 cellpadding=0 cellspacing=0 align=center><tr>
<td WIDTH=1><a href="<?echo $libros[$valor_aleatorio][1];?>" target="_blank"><img src="images/libros/<?echo $libros[$valor_aleatorio][2];?>" border=0></a></td>
<td width="5"></td><td valign=top class=fuente8><b><a href="<?echo $libros[$valor_aleatorio][1];?>" target="_blank"><?echo $libros[$valor_aleatorio][0];?></a></b><p class=fuente8><a href="<?echo $libros[$valor_aleatorio][1];?>" target="_blank">Compra este libro</a> en nuestra libreria a domicilio.</div></tr>
</table>
</td></tr>
</table>


Este ejemplo se puede ver en funcionamiento en la portada de DesarrolloWeb.com. Sabemos que es un código un poco específico, pero esperamos que sirva como ejemplo de uso de los arrays en PHP y en concreto de los arrays de dos dimensiones.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en PHP


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de PHP
Categorías
+Scripts en PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia