Diferencia entre revisiones de «Usuario:ManuelRomero/php/dwes/B2T1/arrays/ejercicios»
De WikiEducator
< Usuario:ManuelRomero | php
Línea 75: | Línea 75: | ||
<hr/> | <hr/> | ||
--> | --> | ||
+ | ;Contar accesos de usuarios identificados | ||
+ | {{Actividad| | ||
+ | ;Creamos una aplicación dónde los usuarios se identificas (una caja de texto para identificarse) | ||
+ | ;Luego iremos contando cada vez que un usuario hace un click | ||
+ | {{Plegable|hide|Posible solución| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | //Si hemos dado a enviar leemos el nombre de usuario y los accesos anteriores (Array nombre:entero acceso | ||
+ | if (isset($_POST['enviar'])) { | ||
+ | $nombre = $_POST['nombre']; | ||
+ | $accesos = $_POST['accesos']; //La primera vez estará vacíon | ||
+ | $accesos[$nombre] ++; //Agregamos en el array el nombre y el acceso actual | ||
+ | //Esta instrucción si no existe ese nombre en el array lo crea | ||
+ | //Si sí que existe, accede a él e incremente a uno su contenido | ||
+ | // (nombre es el índice del array) | ||
+ | } | ||
+ | ?> | ||
+ | <!doctype html> | ||
+ | <html lang="en"> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title>Document</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <form action="index.php" method=POST> | ||
+ | |||
+ | Usuario <input type="text" name="nombre" id=""> | ||
+ | <?php | ||
+ | //Mostramos el array | ||
+ | foreach ($accesos as $nombre => $acceso) | ||
+ | echo "<input type='hidden' name= accesos[$nombre] value = $acceso>\n" | ||
+ | ?> | ||
+ | |||
+ | <input type="submit" value="Acceder" name="enviar"> | ||
+ | </form> | ||
+ | <?php | ||
+ | //Guardamos el array para leerlo la próxima vez | ||
+ | if (isset($accesos)) | ||
+ | foreach ($accesos as $nombre => $acceso) | ||
+ | echo "<h1> $nombre : $acceso </h1>\n"; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | </source> | ||
+ | |||
+ | }} | ||
+ | |||
+ | }} | ||
+ | |||
;Vamos a realizar un recorrido de un array asociativo de varios niveles. | ;Vamos a realizar un recorrido de un array asociativo de varios niveles. | ||
:Realizaremos un estudio del array y luego lo recorreremos | :Realizaremos un estudio del array y luego lo recorreremos |
Revisión de 22:29 23 oct 2017
Tip: Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/a_piece_for_the_wicked_vol_1.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/double_t.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/flagrantly_yours.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/gothic.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/iliad_of_a_wolverhampton_wanderer.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/libertine.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/lullabies_for_tough_guys.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/nocturnal_nomad.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_idle_gait_of_the_self_possessed.gif", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_life_and_times_of_a_ballad_monger.jpg" );
Posible solución |
---|
<?php //Inicializamos el array de imágenes $array = ["http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/a_piece_for_the_wicked_vol_1.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/double_t.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/flagrantly_yours.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/gothic.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/iliad_of_a_wolverhampton_wanderer.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/libertine.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/lullabies_for_tough_guys.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/nocturnal_nomad.jpg", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_idle_gait_of_the_self_possessed.gif", "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_life_and_times_of_a_ballad_monger.jpg" ]; $ind1 = rand(0, count($array) - 1); $ind2 = rand(0, count($array) - 1); $ind3 = rand(0, count($array) - 1); ?> <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the template in the editor. --> <html> <head> <meta charset="UTF-8"> <META HTTP-EQUIV=Refresh CONTENT="3; URL=index.php"> <title>Imágenes</title> </head> <body> <img src="<?php echo $array[$ind1] ?>" alt=""> <img src="<?php echo $array[$ind2] ?>" alt=""> <img src="<?php echo $array[$ind3] ?>" alt=""> </body> </html> |
- Contar accesos de usuarios identificados
|
- Vamos a realizar un recorrido de un array asociativo de varios niveles.
- Realizaremos un estudio del array y luego lo recorreremos
|
- Puedes ver este ejercico en esta url de donde está adaptado http://www.tecn.upf.es/~ocelma/cpom/practicas/ es el ejercicio 12
- Ficheros
Artista.pdf Este fichero es un css para el ejercicios
Contenido del ArrayAsociativo.php
Planteando la solución
Contenido del array
- Para ver el array una buena forma es cargarlo en un fichero php y hacer o bien un var_dump o bien un print_r
<?php require_once ("datos.php"); var_dump( $artistas ); ?>
- A partir de él podemos mostrar la siguiente imagen que describe el aray
- Observamos que en primera instancia tengo un array asociativo de 6 índices cuyos valores son
185711, 32841, 84062, 84430, 84221, 118504
- Cada posición tiene como valor un array asociativo de 4 posiciones cuyos índices tiene los valores
name decades link canciones
- La posición name directamente tiene un valor string que es el nombre del artista
- La posición decades tiene un valor string que es la década de ese cantante
- La posición link tiene un valor string que es un url a una página con información sobre el artista
- La posición canciones es un array indexado de tantas posicione como canciones tenga el artista
- Cada posición del array indexado canciones es un array asociativo con dos índices
title link
- La posición title es un string con el título de la canción
- La posición link es un string con un url donde se puede oir la canción (Actualmente ya no están alojadas en esa posición)