Mostrando entradas con la etiqueta Prácticas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Prácticas. Mostrar todas las entradas

jueves, 13 de febrero de 2014

Día 55. Biblioteca (VI)

Querido diario;

Las secciones de mostrar el listado de libros y realizar las búsquedas ya están acabadas. Aquí su código fuente:

Listado de libros:




Buscar libros:





Ahora vayamos a por la sección de Editar libros.
Dentro de ese .php tenemos tres secciones, añadir, actualizar y borrar. Cada una de estas funciones serán realizadas desde un fichero externo..

Entremos con el de añadir ficheros. El mayor problema es que realizaremos la llamada desde un archivo externo, y hacía una lista desplegable. Problema porque aun no lo hemos visto, que igual luego es sencillo.

¿Cómo crear una lista desplegable?

Se hace con la opción select y option. Es decir.
<select name="nombreQueQueramosDarle">
     <option></option>
</select>

Pero si queremos que este actualizar en tiempo real, deberemos crear <select> y, antes de entrar a <option>, hacer una llamada a la base de datos para que tome los datos en tiempo real. Y ya, después, hacerlo con un echo como aquí:

echo "<option>,$row3[campoQueMostramos],</option>"

miércoles, 5 de febrero de 2014

Día 52. Biblioteca (V)

Querido diario,

Hoy seguimos haciendo la sección de Mostrar libros en PHP.

Concretamente, hoy he llegado tarde por las clases de inglés, pero estaba explicando como intercalar código HTML intercalado con PHP.

Hay dos formas.

<html>
<head>
</head>
<body>
<?php
?>
<Codígo HTML>
</body>
</html>

En esta ocasión, después del primer código PHP y la interrupción de HTML, podemos volver a crear otra sección PHP. Es decir:

<html>
<head>
</head>
<body>
<?php
?>
<Codígo HTML>
<?php
?>
</body>
<html> 

O también tenemos la segunda forma, usando el echo:

<?php
echo "<table>
                <td>
                    <tr>$variable[parametro]</tr>
                <td>
          </table>
?>

Hay que tener en cuenta que a la hora de hacer esta segunda versión, para usar las comillas de HTML las haremos con comillas simples. Si no de otra manera nos saldría como un error de sintaxis, ya que el echo (en PHP), sí que se escribe con comillas dobles.

Día 51. Biblioteca (IV)

Querido diarío;

Hoy hemos tenido una hora sólo de clase, así que he comenzado a hacer la sección de Mostrar Libros, a ver si me salía a mi sólo.

He tenido algunos problemas, pero consigo mostrar un resultado. Mañana continuaré

viernes, 31 de enero de 2014

Día 50. Biblioteca (III)

Mientras sube el profesor los comandos para hacer todo el programa, estoy haciendo la página inicial que no requiere de PHP, sólo HTML.

Creo un frameset dividido en dos páginas. El código es el siguiente:

Index:


Título:


Cuerpo:


El resultado (provisional) es este:


En esta ocasión, cuándo pulse sobre Mostrar libros, Buscar, Editar libros o Configurar secciones se mantendrán todas esas secciones y en la zona de la estantería se cargará la página PHP.

El siguiente paso va a ser ya montar el código en los .php.

Para hacer las llamadas a la base de datos, necesitaré ciertas funciones. Pongo a continuación las requeridas, sacas de un documento enviado por el profesor.

1. Conectar al servidor de la base de datos
Sintaxis: mysql_connect( servidor, usuario, contraseña)

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
// some code
mysql_close($con);
?>

2. Selección de la base de datos
Sintaxis: @mysql_select_db (basededatos, $conexion)

$bd_seleccionada = mysql_select_db('nombreBaseDeDatos', $conexión);
if (!$bd_seleccionada) {
    die ('No se puede usar nombreBaseDeDatos : ' . mysql_error());
}

3. Consulta MySQL
Sintaxis: mysql_query(query,connection)

$sql = "SELECT * FROM Person";
mysql_query($sql,$con);
Hay otros tipos de consultas. Si hago el módulo de búsqueda, me interesa un SELECT, si quiero borrar, DELETE, INSERT para agregar y UPDATE para actualizar los datos.

4. Devuelve todos regitros antes mostrados.
Sintaxis: mysql_fetch_array(data,array_type)

<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * from Person WHERE Lastname='Refsnes'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_array($result));
mysql_close($con);
?>
En esta ocasión si quiero que se muestre, podemos escribir $variable[posicionVector/nombreCampo]. Tal y como está en este ejemplo, mostraría toda la información sin estructurar.

5. Cerrar la sesión de la base de datos 
Sintaxis: mysql_close

mysql_close(connection)
mysql_close($con);



A la hora de hacer la búsqueda, se realizará a través de un formulario, un cuadro de entrada.

<form method="POST" action="buscar.php">
     <input name="Titulo" type="text" size="50" maxlength="100">
     <input name="submit" type="submit" value="A Buscar">

Lo que hacemos es que este formulario se llama a sí mismo en Action.
El primer input le indicamos que sea de tipo texto, con una longitud de 50 ¿píxeles? y con un máximo de cien caracteres.
El segundo input es tipo submit. Es decir, crea un valor. En la etiqueta value crea el texto que queremos que se muestre. Lo que hace un submit es la función referenciada en el parámetro action.
La sección de POST sirve porque en el PHP crearemos una variable que haga referencia a ese cuadro de búsqueda. Es decir: 


$var1=$_POST["Titulo"];
Posteriormente convertiremos esa variable en cadena de texto

settype($var1,"string");

Y luego para mostrar la búsqueda sería repetir los pasos de las sentencias que he escrito arriba.

Hay que tener en cuenta que, en PHP, las cadenas de caracteres se ponen con dobles comillas, pero sin embargo si combino con valores de variables, usaré comillas simples para el contenido PHP.

$prueba=
"SELECT Id, Titulo
FROM libros
WHERE Titulo= '$valor1'";

También se deberá reiterar la construcción de tantas filas (en la tabla), como registros hay en la base de datos.

Para mostrar información enlazada a otra tabla, deberé hacer otra consulta para traer el campo correspondiente.

Si se quiere comprobar que estamos yendo bien, o tener los error controlados, lo idóneo sería hacer que muestre un mensaje si una variable esta fallando, con un mensaje personalizado. Ejemplo

if (! $prueba) {
echo "Hay errores en la consulta";
exit();
Ahora, para que muestre los resultados, por ejemplo en una tabla., la indicamos código PHP para escribir el valor de la búsqueda, todo esto metido dentro de un while.

<table>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
</table>

Esto es todo por hoy. La semana que viene comenzaré a hacer el código PHP

jueves, 30 de enero de 2014

Día 49. Biblioteca (II)

Querido diario;

Ya tenemos creada la base de datos de nuestra página web.
De momento, el desarrollo lo tenemos en este punto, ya que la pregunta que nos debemos hacer al empezar a desarrollarla es: ¿Tenemos que almacenar / acceder a datos en nuestra aplicación?

SECCIÓN BASE DE DATOS


Pues eso. Y por supuesto, en cada tabla creada debemos declarar una clave primaria, ya que son los identificadores únicos de la información que vamos a guardar. Así podemos combinar la información entre varias tablas.
Huelga decir que para combinar campos de varias tablas, debemos guardarlo con el mismo tipo y el mismo número de caracteres, pero no es necesario que en las dos tablas tengan el mismo título. Si relacionamos dos claves primarias de diferentes tablas, esto se conoce como foreign key.

En cuanto a tipos, los grandes tipos son:


  • Cadenas
  • Números
  • Fechas
  • Enumeraciones


Hay muchos más, pero estos son los principales. Y por supuesto, dentro de cada uno de los anteriormente mencionados existen varios subgrupos.

Supongamos que queremos hacer una nueva tabla. Vamos a Localhost - Nuestra base de datos.

Y rellenamos los siguientes datos.


Posteriormente a eso, veremos una nueva pantalla en la que indicaremos el nombre del campo, su tipo (lo que mencionaba antes), la longitud/valores, valor predeterminado, su cotejamiento, los atributos, si es nulo o no, si le indicamos autoincremental y el comentario de este campo.


Vayamos a los tipos.
  • INT: Declaramos un campo numérico. Si deseamos un campo auto-numérico, deberemos declarar este tipo, y que sea clave primaria. Si no lo fuera, podríamos crearlo de todas formas, pero MySQL podría quejarse.
  • VARCHAR: Son cadenas de caracteres de longitud variable. Es decir, si le declaro que pueden escribir cien caracteres y sólo ocupo 54, reducirá ese campo a 54 en este caso. Es decir, lo reduce al número de caracteres que se han ocupado. Pero hay una excepción. Si declaramos una longitud de cuatro caracteres, lo convertirá automáticamente en CHAR (que es lo mismo, pero de longitud fija. Aunque no ocupemos los cuatro caracteres, almacenará cuatro).
  • FLOAT: Sirve para almacenar números, pero permite también almacenar decimales. Si lo escribiera INT no dejará almacenar 1075.58, por ejemplo. Con FLOAT sí. Para declarar su longitud escribiremos numerosEnteros,numerosDecimales.
En el ejemplo superior, el campo id lo guardaré como campo INT, y la marca como campo VARCHAR. Pero por ejemplo, la cilindrada será numérica, pero como no vamos a operar con ese campo e incluso nos podría interesar indicar la cilindrada con su texto (ej: 49 cc), escribiremos con tipo VARCHAR.

El ejemplo quedaría así:


En el proyecto de la biblioteca, quedará así la tabla de libros:




Hecho esto, vamos a ver la parte lógica del negocio, es decir, la estructura del diseño.

ESTRUCTURA DE LA WEB

En el index.html dividiremos la página en dos secciones de página. La idea es mantener fijo el titulo en la partre superior y la inferior que vaya siendo quien cargue las páginas.

Es decir, index.html llama a dos ficheros. Cabecera.html y principal.php (que podría ser perfectamente un .html, pero bueno). El primero es sólo para el título, y desde el segundo llamaremos a los ficheros que se encargan de hacer la funcionalidad.

De momento voy a atender a la explicación. Iré publicando la estructura de la web poco a poco, conforme la vaya desarrollando.

miércoles, 29 de enero de 2014

Día 48. Biblioteca

Querido diario;

Estos dos días estamos viendo la explicación de como desarrollar una biblioteca con PHP y MySQL.

La idea básica es que, con la aplicación, desde un menú principal, puedas acceder a las secciones para ver el listado de libros, buscarlos, añadir libros y categorías, editarl@s y borrarl@s.

¿Cómo se hace todo esto?

Empezamos arrancando PHPMyAdmin. Veremos lo siguiente:


Esta es la pantalla de inicio de la aplicación. He tenido un problema. Si accedo con el usuario admin, no tengo permisos para añadir una base de datos. Para ello me tengo que loguear como root.

Hecho esto, hago clic en bases de datos y creo una, de cotejamiento, con el nombre biblio.


Pulsamos sobre la nueva base de datos y vamos a la sección de SQL, desde donde escribiremos las sentencias para crear las tablas.


Bueno, deberíamos escribir todas las sentencias a mano, pero nos lo va a pasar el profesor para que no tengamos que añadir todos los libros, ya que no está planeado aprender MySQL (una pena, que a mi me gustaba...)

La sentencia completa en SQL es la siguiente (hay que recordar que está para el motor de base de datos 5.6.12. Puede ser que en otras versiones no funcione correctamente.

#Estructura de la tabla `genero`

DROP TABLE IF EXISTS `genero`;
CREATE TABLE `genero` (
  `Id` int(11) default '0',
  `Texto` varchar(100) default NULL
);

#Volcar base de datos de tabla `genero`. Insertará nueve filas

INSERT INTO `genero` (`Id`, `Texto`) VALUES (1, 'Novela'),
(2, 'Crítica'),
(3, 'Policiaca'),
(4, 'Historia'),
(5, 'Poesía y Teatro'),
(6, 'Política'),
(7, 'Didáctica'),
(8, 'Psicología'),

(9, 'Lingüística');

#Estructura de la tabla `libros'

DROP TABLE IF EXISTS `libros`;
CREATE TABLE `libros` (
  `Id` int(11) NOT NULL auto_increment,
  `Titulo` varchar(100) default NULL,
  `Autor` varchar(100) default NULL,
  `IdGenero` int(11) default '0',
  PRIMARY KEY  (`Id`),
  FULLTEXT KEY `Titulo` (`Titulo`)

);

#Volcar la base de datos de tabla 'libros'

INSERT INTO `libros` (`Id`, `Titulo`, `Autor`, `IdGenero`) VALUES (1, 'El truco de los espejos', 'Agatha Christie', 3),
(2, 'Misterio en el Caribe', 'Agatha Christie', 3),
(3, 'Cartas sobre la mesa', 'Agatha Christie', 3),
(4, 'Los relojes', 'Agatha Christie', 3),
(5, 'Se anuncia un asesinato', 'Agatha Christie', 3),
(6, 'El hombre del traje color castaño', 'Agatha Christie', 3),
(7, 'Los elefantes pueden recordar', 'Agatha Chistie', 3),
(8, 'La casa Rusia', 'John le Carré', 3),
(9, 'Escándalo en Bohemia', 'Arthur Conan Doyle', 3),
(10, 'Juego mortal', 'Larry Collins', 3),
(11, 'La mujer del pelirrojo', 'Bill S. Ballinger', 3),
(12, 'La jungla de asfalto', 'W. R. Burnett', 3),
(13, 'Muerte en la noche', 'Edgar Box', 3),
(14, 'El juez ciego', 'Bruce Alexander', 3),
(15, 'Herencia maldita', 'Eric Ambler', 3),
(16, 'Privado de título', 'Andrea Camilleri', 3),
(17, 'La forma del agua', 'Andrea Camilleri', 3),
(18, 'La excursión a Tindari', 'Andrea Camilleri', 3),
(19, 'La voz del violín', 'Andrea Camilleri', 3),
(20, 'Cambio de escena', 'James Hadley Chase', 3),
(21, 'El ángel demoledor', 'Robert Crais', 3),
(22, 'La interferencia', 'Carlos Aguilar', 3),
(23, 'El arpa de hierba', 'Truman Capote', 3),
(24, 'El sueño eterno', 'Raymond Chandler', 3),
(25, 'Sangre española', 'Raymond Chandler', 3),
(26, 'Peces de colores', 'Raymond Chandler', 3),
(27, 'La hermana pequeña', 'Raymond Chandler', 3),
(28, 'Adiós, muñeca', 'Raymond Chandler', 3),
(29, 'Identidad desconocida', 'Patricia D. Cornwell', 3),
(30, 'El gato entre las palomas;10 negritos;El asesino de la guía de ferrocarril', 'Agatha Christie', 3),
(31, 'Por amor a Imabelle', 'Chester Himes', 3),
(32, 'Las armas miran atrás', 'Lajos Zilahy', 3),
(33, 'La educación de Patrick Silver', 'Jerome Charyn', 3),
(34, 'El fotógrafo que hacía belenes', 'Eloy M. Cebrián', 3),
(35, 'La plata de Britania', 'Lindsey Davis', 3),
(36, 'La estatua de bronce', 'Lindsey Davis', 3),
(37, 'La ciudad de los sueños', 'Anton Gill', 3),
(38, 'La ciudad del horizonte', 'Anton Gill', 3),
(39, 'Crimen internacional', 'varios', 3),
(40, 'Un beso de amigo', 'Juan Madrid', 3),
(41, 'El ángel triste', 'Carlos Pérez Merinero', 3),
(42, 'El club del crimen', 'B.M. Gill', 3),
(43, 'El peor hombre del mundo', 'Fernando Schwartz', 3),
(44, 'El tercer hombre', 'Graham Green', 3),
(45, 'El teatro del carnicero', 'Jonathan Kellerman', 3),
(46, 'Cuando el calor aprieta', 'Chester Himes', 3),
(47, 'Por amor a Imabelle', 'Chester Himes', 3),
(48, 'El grito de la lechuza', 'Patricia Highsmith', 3),
(49, 'El asesinato de las criadas chinas', 'Dashiell Hammett', 3),
(50, 'La maldición de los Dain', 'Dashiell Hammett', 3),
(51, 'El hombre delgado', 'Dashiell Hammett', 3),
(52, 'Cosecha roja', 'Dashiell Hammett', 3),
(53, 'La llave de cristal', 'Dashiell Hammett', 3),
(54, 'Piedras ensangrentadas', 'Donna Leon', 3),
(55, 'Muerte en un país extraño', 'Donna Leon', 3),
(56, 'El inocente', 'Mario Lacruz', 3),
(57, 'Campo de Batalla', 'Graham Green', 3),
(58, 'El espia que surgió del frío', 'John Le Carré', 3),
(59, 'Nuevas historias de Plinio', 'F. García Pavón', 3),
(60, 'Las hermanas coloradas', 'F. García Pavón', 3),
(61, 'Muerte en un país extraño', 'Donna Leon', 3),
(62, 'La gente de Smiley', 'John Le Carré', 3),
(63, 'Vestido para la muerte', 'Donna Leon', 3),
(64, 'Sobredosis', 'Arthur Lyons', 3),
(65, 'La viña de Salomón', 'Johnatan Latimer', 3),
(66, 'Fulgor de muerte', 'Elmore Leonard', 3),
(67, 'La onírica búsqueda de la desconocida Kadath', 'H. P. Lovecraft', 3),
(68, 'La sombra sobre Innsmouth', 'H. P. Lovecraft', 3),
(69, 'El caso de Charles Dexter Ward', 'H. P. Lovecraft', 3),
(70, 'La leona blanca', 'Henning Mankell', 3),
(71, 'Pisando los talones', 'Henning Mankell', 3),
(72, 'La quinta mujer', 'Henning Mankell', 3),
(73, 'Los perros de Riga', 'Henning Mankell', 3),
(74, 'Asesinos sin rostro', 'Henning Mankell', 3),
(75, 'El retorno del profesor de baile', 'Henning Mankell', 3),
(76, 'La ciudad del motor', 'Loren D. Esteleman', 3),
(77, 'La falsa pista', 'Henning Mankell', 3),
(78, 'La isla inaudita', 'Eduardo Mendoza', 3),
(79, 'La verdad sobre el caso Savolta', 'Eduardo Mendoza', 3),
(80, 'La cátedra', 'Javier Piqueras de Noriega', 3),
(81, 'Nada que hacer', 'Juan Madrid', 3),
(82, 'Días contados', 'Juan Madrid', 3),
(83, 'Regalo de la casa', 'Juan Madrid', 3),
(84, 'A mano armada', 'Ed McBain', 3),
(85, 'Extrañas lealtades', 'William McIlvanney', 3),
(86, 'Gálvez en la frontera', 'Jorge M. Reverte', 3),
(87, 'El enemigo insólito', 'Ross McDonald', 3),
(88, 'La mirada del adiós', 'Ross MacDonald', 3),
(89, 'El caso Galton', 'Ross MacDonald', 3),
(90, 'El hombre enterrado', 'Ross MacDonald', 3),
(91, 'Los maléficos', 'Ross MacDonald', 3),
(92, 'Prótesis', 'Andreu Martín', 3),
(93, 'A navajazos', 'Andreu Martín', 3),
(94, 'Si es no es', 'Andreu Martín', 3),
(95, 'Barcelona negra', 'José Luis Muñoz', 3),
(96, 'Por amor al arte', 'Andreu Martín', 3);


Fin de la cita.

Si vamos a Biblio - Genero y seleccionando la fila ID, pulsamos sobre la llave para indicar que la queremos como "clave primaria". Desde ese momento ya podemos editar los registros también desde el panel de administración.

Continua mañana.

viernes, 24 de enero de 2014

Día 46. Solución a caso práctico (II)

Querido diario;

La solución completa al ejercicio del otro día es esta:


Este sí que lo hace bien. Muestra el fichero tal cuál está, y en una linea por debajo muestre el resultado modificado, pero sin almacenarlo dentro de estoesunaprueba.txt. Así sí da gusto.

Al final resulta que el mío no estaba tan mal. Me sigue guardando el resultado dentro del fichero, pero he conseguido que se muestre donde quiero. Para ello (EN MI CODIGO), después de la línea de str_replace de la variable $cambiado, escribimos 

echo $cambiado
El modo de abrir el archivo la segunda vez lo sustituyo por r+, en vez de a+. Además, las dos líneas siguientes del echo eran las que me sobraban.

El resultado de mi código ha quedado así:


No iba tan desencaminado. Me siento hasta orgulloso y todo. Esto es lo que muestra por pantalla


viernes, 17 de enero de 2014

Día 45. Caso práctico

Querido diario;

Hoy lo empezamos con una nueva práctica.

Debemos abrir un fichero externo a la hoja PHP, mostrarlo por pantalla, modificarle todas las palabras "una" que tenga el documento por otra cualquiera (yo elegí "bimbadibu"), y volver a mostrarlo por pantalla.

La parte de mostrar el primer texto por pantalla ha salido bien. Este es el código empleado


Estoy atascado en la parte de modificar y volver a mostrar el resultado por pantalla, estoy un poquito atascado. Seguiré probando con lo que se me ocurre (o lea por Internet, por supuesto).

Mi código completo es este:


Lo que hace es abrir y leer el fichero sin problemas, pero a la hora de modificar el texto se queda en blanco y, al recargar la página, vuelve a copiar el mismo enunciado pero modificando la palabra, en la primera zona.

jueves, 12 de diciembre de 2013

Día 34

Querido diario;

Hoy lo hemos dedicado en exclusiva a realizar las prácticas de Arrays

martes, 3 de diciembre de 2013

Día 30.

Querido diario;

Hoy hemos tenido tiempo para continuar con las prácticas de JavaScript. Estoy tratando de ponerme al día con lo de las funciones, así que no puedo adelantar tanto como quisiera. Poco a poco

miércoles, 20 de noviembre de 2013

Día 27. Notas

Querido diario;

Hoy hemos corregido el examen que realizamos la semana pasada, y ya tengo la nota.

Un.... (redoble de tambores).... ¡9.75!

Estoy bastante contento, la verdad.


jueves, 14 de noviembre de 2013

Día 26.

Querido diario;

Hoy ha sido tiempo para finalizar las prácticas que nos mandó, pero como ya las tengo hechas he adelantado otras tareas.
Bueno, y he leído un libro.
...
Vale, concretamente he leído un libro y he trabajado diez minutos.
....
Sigo leyendo el libro. Hasta la próxima entrada

miércoles, 13 de noviembre de 2013

Día 25. El día D

Querido diario;

Hoy ha sido el examen. A secas.

Salvo las dos preguntas de teoría que no las recordaba exactamente, todos los ejercicios prácticos creo tenerlos bien. Eso espero.

Seguiré informando en futuras conexiones.

jueves, 31 de octubre de 2013

Día 18

Querido diario;

Hoy he realizado la práctica 2.1, que es la última de CSS. Ha sido sencilla, salvo por el parámetro de centrar los <div> con estilos.

La solución cutre ha sido en el HTML antes de abrir la etiqueta <div> insertar un <center>. No es recomendable porque ya está descatalogado en HTML5, pero funciona.

La forma correcta sería, en el estilo, estos parámetros:

margin: 10px auto 10px auto;

Y solucionado.

Mañana empezaremos con Javascript. Tengo muchas ganas por aprender a manejarlo, veremos cómo resulta.

¡Hasta luego!

martes, 29 de octubre de 2013

Día 17

Hemos dedicado la hora de hoy a continuar con la práctica de CSS, pero cómo ya la tenía finalizada del otro día, pues he estado leyendo un libro en PDF. Por no aburrirme y tal

viernes, 18 de octubre de 2013

Día 14

Querido diario;

Comenzamos / continuamos (según el punto en el que esté cada uno en clase) la práctica de desarrollar una página web de temática libre dividiendo las páginas, o eso es lo que entendí yo.

Me explico. Ayer realicé la práctica correctamente, montando una web con tablas, pero al preguntarle al profesor me lié y acabe entendiendo que con <table> no se podía hacer este ejercicio (había que dividir en frames y cargar la página en la zona central). Esta era la estructura de la web:


 Así que hoy he comenzado a hacerla usando los <frameset>.

- Profe, ¿puedes venir? Que no entiendo porque no me carga correctamente
- ¿Pero con frameset lo haces?
- Sí, ¿no? Es que ayer me dijiste que con tabla no se podía hacer
- ¿Yo te dije eso?
- Sí
- ¿Pero yo te dije eso?
- Creo
- A mi no me suena que te dijese eso
- To' pudiera ser que lo entendiese mal

Y eso, que al final lo había entendido yo mal. Hay que hacerlo con tablas, o en su defecto con <div>, y usando la etiqueta <iframe> que es la que permite cargar páginas en otras secciones de la página.
Así que he realizado la práctica con <table> e <iframe> pero me ha entrado tanta curiosidad por seguir probando con esta nueva etiqueta que también estoy armando la misma página haciendo divisiones de zonas (<div>) e <iframe>.

He tenido algunos problemas para colorear el menú del índice pero con arreglos "chapuceros", lease <pre> y muchos espacios, ha funcionado bien.

La etiqueta la he aplicado con estos parámetros:

<iframe name="cuerpo"  src="cancion.html" width="100%" height="100%" marginheight="100%">
 </iframe>

Y eso ha sido todo por hoy. Seguiremos informando

viernes, 11 de octubre de 2013

Día 11

Querido diario;

Hoy hemos continuado con las prácticas de tablas. Me he percatado de que para realizar correctamente las combinaciones de celdas, hay que "eliminar" las <td> que no pienses utilizar. Me explico:

Supongamos que queremos realizar esta tabla:


En ella hemos combinado nueve filas para Sistemas Microinformáticos, cinco para 1º SMR y 4 para 2º SMR.

Para ello, el código que debemos introducir sería (sin incluir <table></table>, solo me voy a referir a lo que sucede dentro de ella.

<tr>
<td rowspan="9">SISTEMAS MICROINFORMÁTICOS Y REDES.
<br>(R.D. 1691/2008, BOE 17/01/08
<br>
<br>Referente europeo: CINE-3</td>

Con esto lo que hacemos es una combinación de nueve filas (rowspan="9")
<td rowspan="5">1º SMR</td>
<td>Montaje y mantenimiento de equipos</td>
</tr>
Y de cinco para SMR. Hasta aquí bien. Pero ahora vamos a crear celdas que no van a ser combinadas, con lo cual si escribimos

<tr>
<td>
<td>
<td>Sistemas Operativos Monopuestos</td>
Lo que conseguiriamos sería descuadrarnos de la estructura planteada, porque no escribiriamos en la tercera columna, sino que después de las dos anteriores, se crearían dos columnas más en blanco, y luego esta.
El código correcto sería

<tr>
<td>Sistemas Operativos Monopuestos</td>
</tr>
Porque al estar combinado, no necesitamos hacer referencia a los espacios de las dos columnas anteriores.

Ya finalizada la práctica en clase, sólo queda decir

Día 9.

Querido diario;
Hoy hemos seguido con las prácticas. Bueno, en realidad hoy me he enterado de que aunque no diésemos teoría, también teníamos que escribir entradas en el blog, así que lo que es hoy en realidad fue ayer. Algo así como que lo que ha sido ya no será, pero en plan informático.

Y eso. He terminado la práctica 1.2 y apunto de terminar la 1.3, que consiste en aplicar todo lo aprendido en estos días.

jueves, 10 de octubre de 2013

Día 8

Querido diario;

Hoy no hemos dado teoría, por eso te voy a dejar descansar un poco.
Hemos empleado la hora para realizar prácticas, que tenemos dos pendientes y hay que hacerlas.

Fin de de la cita