![]() |
|
||||||||||||||||
![]() |
||||||||||||||||
Pràctica |
![]() |
Exercicis
|
||||||||||||||
Selecció d'entrevista | ||||||||||||||||
![]() |
En aquesta pràctica s'explica la creació del mòdul de selecció d'entrevista. Aprofitareu algunes de les opcions incloses a la llibreria ADODB. |
||||||||||||||||
Desenvolupament de la pràctica | ||||||||||||||||
Amb la figura següent podeu fer-vos una idea aproximada de les tasques encomanades al fitxer histentre.php. Veniu de la selecció d'alumnes (selecalum.php), on l'única dada que interessa és el número de matrícula de l'alumne/a, ja que amb aquesta dada heu de visualitzar totes les entrevistes relacionades amb aquest alumne/a al llarg de la seva estada al centre. |
||||||||||||||||
![]() |
||||||||||||||||
Figura 6.3.1. Esquema dels blocs abstractes del fitxer
codi histentre.php i relacionats
|
||||||||||||||||
En qualsevol sistema de manteniment de dades és imprescindible l'existència de quatre opcions bàsiques: donar d'alta un registre, modificar-lo, consultar-lo i esborrar-lo. | ||||||||||||||||
Precisament, en aquesta pràctica detallareu la programació necessària que permet veure totes les entrevistes fetes a un alumne/a al llarg del seu historial acadèmic al centre, i inserir-ne de noves, modificar, consultar i eliminar les ja existents. Aquestes accions no les fa directament el fitxer histentre.php, sinó que envia les dades necessàries a distri.php, que segons les opcions seleccionades i l'origen d'aquestes dades, encamina (distribueix) els fitxers especialitzats a donar d'alta (entre_alta.php), modificar (entre_modi.php), consultar i donar de baixa. Les opcions de consultar i donar de baixa ataquen el mateix fitxer d'ordres (entre_cons.php), amb la diferència que hi ha una variable de sessió anomenada baixa que condiciona la presentació i execució del fitxer entre_cons.php. | ||||||||||||||||
Fitxer Histentre.php | ||||||||||||||||
Per poder visualtizar les entrevistes d'un alumne/a, utilitzareu la classe ADODB Pager, explicada al mòdul 5, pràctica 4. En primer lloc, heu de construir la sentència SQL que filtrarà les dades de l'alumne/a seleccionat. A la sentència SQL es força que la visualització de les dates sigui dia/mes/any, ja que internament a la BD es guarda com a any/mes/dia. | ||||||||||||||||
![]() |
/* Convertim el format de la data per tal que el 'pager'
ens la mostri així Això mateix es podria fer també sobre la consulta SQL amb la funció de MySQL DATE_FORMAT()*/ // Format visual dates d/m/aa per data petició i data entrevista $fm_datapet = $ConTut->SQLDate('d/m/Y','datapet'); $fm_dataent = $ConTut->SQLDate('d/m/Y','dataent'); $sql = "SELECT iden , TRIM(curs_acad), estat, $fm_datapet , $fm_dataent,
temes "; // Comprovem que la consulta contingui algun registre // Si hem trobat dades, vol dir que hi ha entrevistes per l'alumne |
|||||||||||||||
Llistat 6.3.1. Codi parcial del fitxer histentre.php | ||||||||||||||||
Una vegada teniu les dades, heu de definir les propietats i els objectes que compondran la classe ADODB Pager. Podeu consultar el mòdul 5, pràctica 4. | ||||||||||||||||
![]() |
// Creem una instància del 'pager' de l'ADODB $pager = new ADODB_Pager($ConTut, $sql); // Icones o de moviment $pager->showPageLinks = True; // visualitza el nombres de planes // Definim encapçalament // Descripció missatge de situació a peu de tabla (pàgina
x de n.) //$pager->cache = 60; |
|||||||||||||||
Llistat 6.3.2. Codi parcial del fitxer histentre.php |
||||||||||||||||
Amb aquest codi, s'aconsegueix paginar i visualitzar el resultat de la consulta. Podeu comprovar que al camp Temes tractats apareixen trossos de text amb negreta, ja que heu permès visualitzar codi HTML amb la propietat htmlSpecialChars, perquè quan heu donat d'alta l'entrevista, heu inclòs les directives d' HTML <b>... </b> entre el text, la qual cosa provoca que el text que s'inclou entre les marques es mostri en negreta. | ||||||||||||||||
Figura 6.3.2. Visualització de l'historial d'entrevistes amb la classe Pager de l'ADODB |
||||||||||||||||
Ara heu de buscar la manera de seleccionar una entrevista de les visualitzades, per passar-la a GetMenu de l'ADODB, que deixi seleccionar només els identificadors que visualitzeu en pantalla a través de la classe Pager. El problema és saber quina pàgina està visualitzant l'ADODB_Pager. Si rasqueu una mica el fitxer adodb_pager.inc.php, que és l'encarregat d'implementar-ho, trobareu que utilitza una variable de sessió anomenada adodb_curr_page, per tant, amb aquesta dada i el valor de files que s'ha de visualitzar per pàgina que heu definit (row=5), ja teniu els valors d'ordre mínim i màxim dels registres que visualitzeu. Fixeu-vos que a la sentència SQL establiu quin interval de registres voleu seleccionar amb la instrucció LIMIT. | ||||||||||||||||
![]() |
// OBJECTE GetMenu() per seleccionar ID per modif./consult./esborrar
// Càlcul per trobar límits de sentència SQL
i només visualitzar els $nom_menu = 'iden'; // Nom del menú. ?> |
|||||||||||||||
Llistat 6.3.3. Codi parcial del fitxer histentre.php | ||||||||||||||||
Seguidament heu de definir les propietats de l'objecte GetMenu (consulteu el mòdul 5, pràctica 4) i crear el formulari form 1, que ha de contenir la selecció de l'identificatiu d'entrevista i els botons de consultar, modificar i esborrar entrevista. Observeu que el paràmetre action del formulari us envia al fitxer distri.php. | ||||||||||||||||
Figura 6.3.3. Selecció d'identificatiu d'entrevista |
||||||||||||||||
Al formulari podeu apreciar que passeu un paràmetre ocult amb el valor del nom del fitxer, i que els botons de consultar, modificar i esborrar passen els paràmetres cons, modi i esbo respectivament. Aquests paràmetres són els que utilitzareu al fitxer distri.php. | ||||||||||||||||
![]() |
<form name="form1" method="post" action="distri.php?<?php
echo session_name()."=".session_id()?>"> Selecciona Id.: <?php print $result1->GetMenu($nom_menu, $opc_selec, $blanc, $selec_mult, $quants, $atributs); ?> <input name="origen" type="hidden" value="histentre.php"> <input type="submit" name="cons" value="Consulta"> <input type="submit" name="modi" value="Modificar"> <input type="submit" name="esbo" value="Esborrar"> </form> |
|||||||||||||||
Llistat 6.3.4. Codi parcial del fitxer histentre.php | ||||||||||||||||
Fitxer Distri.php | ||||||||||||||||
Aquest fitxer és un fitxer de pas. La funció principal d'aquest fitxer és la de distribuir. En funció d'on ve i els paràmetres que rep, us encamineu a un o altre fitxer. | ||||||||||||||||
|
||||||||||||||||
A la taula anterior heu modelitzat en dues dimensions la funció principal del fitxer distri.php. A la llista següent, es crea la primera fila d'aquesta taula amb codi PHP. | ||||||||||||||||
![]() |
if ($origen == "histentre.php"){ $_SESSION['identre'] = $iden; if (isset($_POST['modi'])){ // Modifiquem entrevista header("Location: entre_modi.php?".session_name()."=".session_id()); } if (isset($_POST['esbo'])){ // Visualitzem entrevista i confirmem esborrat $_SESSION['baixa'] = True; header("Location: entre_cons.php?".session_name()."=".session_id()); } if (isset($_POST['cons'])){ // Visualitzem entrevista $_SESSION['baixa'] = False; header("Location: entre_cons.php?".session_name()."=".session_id()); } } |
|||||||||||||||
Llistat 6.3.5. Codi parcial del fitxer distri.php | ||||||||||||||||
![]() |
Reordeu que en donar d'alta un registre a la taula entrevistes s'enllaça directament per menú amb el fitxer entre_alta.php. El fitxer distri.php només controla les accions que necessiten l'identificatiu d'entrevista, ja que modifiquen, consulten o esborren un registre ja existent a la BD. Donar d'alta provoca la creació d'un nou registre, i no fa falta controlar-ne l'identificatiu, ja que se n'encarrega la BD. |
![]() |
![]() |
||||||||||
|
Exercicis |
|||||||||