bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


php_mysql

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
php_mysql [2022/11/17 15:12]
enric_mieza_sanchez [Exercicis mysqli_]
php_mysql [2022/11/28 18:45] (actual)
enric_mieza_sanchez [Utilitzant PHP amb MySQL]
Línia 9: Línia 9:
   * **Llibreries [[https://www.php.net/manual/es/book.pdo.php|PDO o PHP Database Objects (doc oficial)]]**: tenen el gran avantatge que ens permet canviar de tipus de BD a la que ens connectem sense alterar les funcions de connexió i llançament de //queries//. Les (petites) diferències entre unes i altres en el llenguatge SQL no ho solventa, però no és gaire problema ja que aquestes diferències solen ser poques.   * **Llibreries [[https://www.php.net/manual/es/book.pdo.php|PDO o PHP Database Objects (doc oficial)]]**: tenen el gran avantatge que ens permet canviar de tipus de BD a la que ens connectem sense alterar les funcions de connexió i llançament de //queries//. Les (petites) diferències entre unes i altres en el llenguatge SQL no ho solventa, però no és gaire problema ja que aquestes diferències solen ser poques.
  
 +<WRAP info>
 +Els exercicis tipus "fita" (a.k.a. "imperdonables") els teniu a [[Fites DAW MP07 UF3]]
 +</WRAP>
  
 {{tag> #FpInfor #Daw #DawMp07 #DawMp07Uf3 #DawMp07Uf03 }} {{tag> #FpInfor #Daw #DawMp07 #DawMp07Uf3 #DawMp07Uf03 }}
Línia 14: Línia 17:
 ===== Recursos ===== ===== Recursos =====
  
 +Amb funcions particulars mysqli_ :
   * [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-acces-a-dades/readme.md|PHP i MySQL a Ctrl-alt-D de Daniel Herrera]].   * [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-acces-a-dades/readme.md|PHP i MySQL a Ctrl-alt-D de Daniel Herrera]].
-  * [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-acces-a-dades-amb-pdo/readme.md|PDO a Ctrl-alt-D de Daniel Herrera]]. 
-  * [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-insercio-de-dades-amb-pdo/readme.md|PDO a Ctrl-alt-D de Daniel Herrera]]. 
   * [[https://cacauet.org/wiki/index.php/PHP_MySQL_select|PHP i MySQL amb mysql_ a cacauet.org]].   * [[https://cacauet.org/wiki/index.php/PHP_MySQL_select|PHP i MySQL amb mysql_ a cacauet.org]].
 +
 +Amb PDO:
 +  * [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-acces-a-dades-amb-pdo/readme.md|PDO (lectura) a Ctrl-alt-D de Daniel Herrera]].
 +  * [[https://github.com/ctrl-alt-d/FpUf/blob/main/DAW/DAW-MP07/DAW-MP07-UF3/php-insercio-de-dades-amb-pdo/readme.md|PDO (inserció) a Ctrl-alt-D de Daniel Herrera]].
 +
 +PDO amb seguretat:
 +  * https://diego.com.es/tutorial-de-pdo
 +  * [[https://www.php.net/manual/es/pdostatement.bindparam.php#refsect1-pdostatement.bindparam-examples|Exemples de PDO amb seguretat (bindParams) a la pàgina oficial de PHP]]
  
 \\ \\
 +
  
 ===== Utilitzant llibreria mysqli_ ===== ===== Utilitzant llibreria mysqli_ =====
Línia 102: Línia 113:
 ===== Exercicis mysqli_ ===== ===== Exercicis mysqli_ =====
  
-Exercici de filtratge amb WORLD+Exercicis de filtratge amb la BD "world".
  
 +==== Exercici 1 ====
 <WRAP todo> <WRAP todo>
 Amplia l'exemple de les ciutats amb la BBDD World de forma que puguem filtrar les ciutats mostrades amb un menú desplegable (SELECT). Amplia l'exemple de les ciutats amb la BBDD World de forma que puguem filtrar les ciutats mostrades amb un menú desplegable (SELECT).
  
-Primera part+Pàgina ''index.php''
-  - index.php: Comença per fer un llistat dels països utilitzant la taula COUNTRY. +  * Posa-li un títol ''H1'' a la pàgina que digui literalment "Filtre de ciutats per país". 
-  Transforma-ho a un **menú desplegable (dropdown menu) i que tingui el ''name="pais"''**. +  * Comença per fer un llistat dels països utilitzant la taula COUNTRY. 
-  La FK que lliga la taula CITY i la taula COUNTRY és el CountryCode. El formulari select (ja sigui desplegable o radio button) ha de mostrar el nom del país, però ha d'enviar el CountryCode com a value a través de GET o POST a la pagina 2. +  Transforma-ho a un **menú desplegable (dropdown menu) i que tingui el ''name="codi_pais"''**. 
-  Pàgina 2: Agafa el país enviat per l'usuari (GET o POST) i fes una query que filtri els resultats de la taula CITY i que només mostri les ciutats del país seleccionat.ç+  La FK que lliga la taula ''City'' i la taula ''Country'' és el ''CountryCode''. El formulari SELECT (ja sigui desplegable o //radio button//) ha de mostrar el nom del país, però ha d'enviar el ''CountryCode'' com a value a través de GET o POST a la pagina 2. 
 + 
 +Pàgina ''results.php'': 
 +  * Agafa el país enviat per l'usuari (GET o POST) i fes una //query// que filtri els resultats de la taula ''City'' i que només mostri les ciutats del país seleccionat.
  
 </WRAP> </WRAP>
 +
 +<WRAP important>
 +Si fas servir Github Classroom amb Actions (autocorrecció), cal seguir les indicacions del professor perquè  l'accés a la BD i als autotests sigui correcte.
 +
 +  * Utilitza ''127.0.0.1'' enlloc de ''localhost''.
 +  * Utilitza username ''admin'' i password ''admin123'': si no tens creat l'usuari admin en local, crea'l i dona-li permisos per accedir a la DB ''world''.
 +  * Utilitza el nom de la BD ''world''
 +</WRAP>
 +
  
 ==== Exercici 2 ==== ==== Exercici 2 ====
 <WRAP todo> <WRAP todo>
 Segona part: Segona part:
-  - Puja aquest projecte a Github (seguint les indicacions del professor) i crea un README.md que expliqui com posar en marxa l'exercici perquè funcioni correctament. +  Indica també el nom del país de la ciutat. No ens val el CountryCode, volem el nom del país literal (per exemple, no ens val "FRA" sinó que haria de sortir "France"). Per a fer això caldrà que facis un JOIN.
-  - Indica també el nom del país de la ciutat. No ens val el CountryCode, volem el nom del país literal (per exemple, no ens val "FRA" sinó que haria de sortir "France"). Per a fer això caldrà que facis un JOIN.+
 </WRAP> </WRAP>
  
Línia 126: Línia 149:
 <WRAP todo> <WRAP todo>
 Tercera part: Tercera part:
-  - Afegeix les banderes dels països al formulari (caldrà cercar-les per internet). +  - Afegeix la pagina ''afegir_ciutat.php'' que disposi d'un formulari que permeti afegir noves ciutats. 
-  - Afegeix la pagina ''afegir_ciutat.php'' que disposi d'un formulari que permeti afegir noves ciutats. Els països s'han de poder entrar amb un desplegable.+    * El país s'ha de poder seleccionar d'un desplegable amb ''name=codi_pais''
 +    * El nom es posarà en un ''input'' amb ''name=nom_ciutat''
 +    * La població es posarà en ''input'' amb ''name=poblacio''
 +    * La resta de camps no calen. 
 +  - Si la ciutat s'inserta bé, donar un missatge en un ''div'' amb ''class="missatge"'' que digui **"Ciutat afegida correctament"**. 
 +  - Posar un link amb el text **"Tornar a l'inici"**. 
 +  - Abans d'insertar la ciutat, comprovar que no existeixi una ja insertada amb el mateix nom i al mateix país (si son de països diferents, sí que poden tenir el mateix nom). En cas de que ja existeixi, donar error amb el missatge **"Aquesta ciutat ja existeix en aquest país"**.
  
 </WRAP> </WRAP>
php_mysql.1668697926.txt.gz · Darrera modificació: 2022/11/17 15:12 per enric_mieza_sanchez