Professional Documents
Culture Documents
i administració
web amb bases de
dades
PID_00275797
Cap part d'aquesta publicació, incloent-hi el disseny general i la coberta, no pot ser copiada,
reproduïda, emmagatzemada o transmesa de cap manera ni per cap mitjà, tant si és elèctric com
mecànic, òptic, de gravació, de fotocòpia o per altres mètodes, sense l'autorització prèvia
per escrit del titular dels drets.
© FUOC • PID_00275797 Desenvolupament i administració web amb bases de dades
Índex
Introducció.................................................................................................. 5
Objectius....................................................................................................... 6
1. Conceptes previs................................................................................. 7
1.1. Plataformes .................................................................................. 8
1.2. Domini ........................................................................................ 9
2. HTML..................................................................................................... 10
2.1. El llenguatge HTML .................................................................... 10
2.2. L’estandardització ........................................................................ 11
2.3. L’estructura HTML ....................................................................... 12
2.4. Les caixes en HTML .................................................................... 16
3. CSS.......................................................................................................... 17
3.1. Introducció al CSS ....................................................................... 17
3.2. Estructura CSS ............................................................................. 17
3.3. Selectors ....................................................................................... 18
3.4. Maquetació bàsica ....................................................................... 20
3.5. Pseudoclasses ............................................................................... 23
3.6. Llistes ........................................................................................... 23
4. JavaScript............................................................................................. 24
4.1. Introducció a JavaScript .............................................................. 24
4.2. Sintaxi bàsica de JavaScript ......................................................... 25
4.3. Exemple de codi JavaScript ......................................................... 25
4.4. Frameworks.................................................................................... 26
5. LAMP...................................................................................................... 28
5.1. Instal·lar LAMP en una Ubuntu 18.04 ....................................... 28
6. PHP......................................................................................................... 34
6.1. El llenguatge PHP ........................................................................ 34
6.2. Sintaxi bàsica ............................................................................... 34
6.2.1. Variables ......................................................................... 35
6.2.2. Estructures de control .................................................... 36
6.2.3. Funcions ......................................................................... 38
6.2.4. Arrays............................................................................... 38
6.2.5. Variables reservades i variables de sessió ....................... 40
6.2.6. Formularis ...................................................................... 42
© FUOC • PID_00275797 Desenvolupament i administració web amb bases de dades
7. MySQL.................................................................................................... 44
7.1. Introducció al MySQL ................................................................. 44
7.2. Funcions de MySQL .................................................................... 44
Bibliografia................................................................................................. 47
© FUOC • PID_00275797 5 Desenvolupament i administració web amb bases de dades
Introducció
Vivim a l’era digital, una època de grans canvis que afecten en major o menor
mesura tots els aspectes de la nostra vida. Una revolució que ha canviat la
forma de comunicar-nos, treballar, etc. En l’àmbit econòmic i laboral, petites
i grans empreses estan adaptant-se i aprofitant les oportunitats que internet i
els nous entorns els poden aportar. Aquest és el motiu pel qual, en els últims
anys, hem vist com botigues físiques han esdevingut botigues en línia.
També els consumidors han canviat la forma de comprar. Des de comprar amb
facilitat i immediatesa amb solament un «clic» per mitjà d’un dispositiu mòbil
(aplicació o web) en una botiga de tecnologia a comprar mitjançant qualse-
vol ordinador o tauleta en una gran plataforma de comerç electrònic com és
Amazon. Temps, diners, rapidesa, a més de la possibilitat de fer-ho en qualse-
vol moment del dia i des de qualsevol lloc del món són els avantatges més
freqüents que hom identifica en aquesta nova manera de comprar que dema-
na la societat actual.
Aquest mòdul s’inicia amb la introducció de conceptes previs que cal conèi-
xer abans de començar a implementar una botiga en línia. A continuació, es
veuran les diferents tecnologies i llenguatges, a nivell tècnic, per tal de desen-
volupar-la.
© FUOC • PID_00275797 6 Desenvolupament i administració web amb bases de dades
Objectius
1. Conceptes previs
Quan ens plantegem crear un lloc web, el primer que hem de tenir en compte
és disposar de la infraestructura adequada. Què necessitem? Caldrà tenir una
infraestructura�de�maquinari i una infraestructura�programari.
Aquesta solució és la més cara de totes i, per tant, és la que utilitzen les
empreses grans i mitjanes. Els proveïdors de serveis al núvol més coneguts
són Amazon Web Services, Google Cloud i Azure.
A banda de la contractació de qualsevol dels serveis que acabem de mencionar, Hosting web o allotjament
també hi ha la possibilitat de tenir en propietat tota la infraestructura de ma- web
quinari que necessita el servidor web (de forma privada i sense cap contracte Servei de lloguer d’un lloc en
amb una entitat externa). Aquesta opció és, lògicament, la que té un cost de un servidor web que permet la
publicació d’un espai a inter-
manteniment més alt. net accessible 24/7.
1.1. Plataformes
1.2. Domini
El nom�de�domini pot ser adquirit a una empresa que dona aquest tipus de
serveis o a la mateixa empresa on allotgem el lloc web.
© FUOC • PID_00275797 10 Desenvolupament i administració web amb bases de dades
2. HTML
A l’hora de dissenyar una pàgina web, hem de tenir clar que el llenguatge per
excel·lència de creació d’aquestes és l’HTML, juntament amb el CSS. En aquest
punt, estudiarem els principis bàsics de l’HTML per tal de poder desenvolu-
par-la dins de qualsevol servidor.
L’element en què es basa la programació HTML són les etiquetes, que conte-
nen instruccions que el navegador interpreta i mostra per pantalla. Una eti-
queta es forma de la manera següent:
<etiqueta>...</etiqueta>
Els fitxers HTML (.htm o .html) poden ser editats des de qualsevol editor de
text, com per exemple el Notepad++. A continuació, podem veure un llistat
dels editors HTML més coneguts:
© FUOC • PID_00275797 11 Desenvolupament i administració web amb bases de dades
2.2. L’estandardització
Els orígens de l’HTML es remunten als anys vuitanta quan Tim Berners-Lee va
crear un sistema per compartir documents que permetia accedir a la informa-
ció relacionada amb els documents que es visualitzaven, el qual ha esdevingut
el predecessor dels enllaços de les webs actuals.
Anys més tard, Tim Berners-Lee, juntament amb l’enginyer de sistemes Robert
Cailliau, van presentar el seu sistema a una convocatòria per desenvolupar un
sistema d’hipertext per a internet. La seva proposta anomenada World Wide
Web (W3C) en fou la guanyadora.
D’aquesta forma, el 1991 va sorgir l’HTML i dos anys després es crearien les IETF
bases per tal d’estandarditzar aquest llenguatge per part de l’organisme IETF.
Internet Engineering Task For-
Es van definir les etiquetes per a imatges, taules i formularis, però no seria fins ce (IETF), organització inter-
al 1995 que l’IETF publicaria el seu estàndard oficial amb l’HTML 2.0. A partir nacional de normalització sen-
se ànim de lucre oberta a tot-
de l’any següent, agafaria l’estandardització del llenguatge l’organisme W3C, hom, la qual té per objectiu
contribuir a internet publicant
creant així els successius refinaments del llenguatge HTML (3.0, 4.0, 5.0, 6.0, estàndards.
etc.) que anirien incorporant applets de Java, fulls d’estil CSS, scripts, millores
en accessibilitat, etc.
Tota pàgina HTML comença amb l’etiqueta <html> i acaba amb l’etiqueta </
html>. Al seu interior, hi ha d’haver la capçalera i el cos, <head> i <body>
respectivament, que com en el cas anterior s’han de tancar un cop s’acabi el
codi de les seves parts. La capçalera inclourà el títol i la descripció de la pàgi-
na mentre que en el cos s’han d’incloure els continguts (paràgrafs, imatges,
enllaços, taules, àudio o vídeo, etc.).
Les diferents etiquetes HTML segueixen una estructura jeràrquica i, per tant,
poden acollir altres etiquetes. A més, aquestes poden tenir atributs per conte-
nir informació addicional. Per exemple, si volem modificar el tipus de lletra
d’un paràgraf utilitzarem l’etiqueta <p> aplicant-li l’atribut <i> de la manera
següent:
Enllaç recomanat
<html>
<head>
<title>Botiga UOC</title>
</head>
<body>
<img src="logo_uoc.jpg" width="669" height="173">
<h1>Botiga UOC: Llibres, revistes... i molt més!</h1>
<p>A la nostra botiga hi trobareu informació de <strong>totes les àrees</strong> agrupades
fàcilment per <em>categories</em>.</p>
<h2>Descomptes: Aquest mes tot a un 10%</h2>
<p>Navega i gaudeix d’una gran varietat de continguts.</p>
</body>
</html>
1)�Enllaços
<a href="http://www.google.es">Google</a>
2)�Imatges
<img src="nom.jpg">
(1)
On src1 ens indica la ruta i el nom de la imatge a incrustar. L’amplada i l’alçada Source, en anglès.
de la imatge són atributs d’aquesta etiqueta que cal indicar, quedant la sintaxi
de la manera següent:
<a href="pagina.html">
<img src="smiley.gif" style="width:42px;height:42px;border:0;">
</a>
© FUOC • PID_00275797 14 Desenvolupament i administració web amb bases de dades
3)�Llistes
Les llistes serveixen per agrupar elements i en podem trobar de tres tipus:
desordenades, ordenades i de definició.
<h1>Menú</h1>
<ul>
<li>Llibres</li>
<li>Revistes</li>
<li>DVD</li>
</ul>
4)�Taules
Les taules estan formades per files i columnes. A més, poden incloure capça-
leres amb els títols i peus de taula, i també subdivisions i elements més com-
plexos.
<table>
<tr>
<td><strong>Producte</strong></td>
<td><strong>Preu</strong></td>
<td><strong>Quantitat</strong></td>
</tr>
<tr>
<td>Llibre HTML</td>
<td>30</td>
<td>1</td>
</tr>
<tr>
<td>Revista CSS</td>
© FUOC • PID_00275797 15 Desenvolupament i administració web amb bases de dades
<td>5</td>
<td>2</td>
</tr>
</table>
5)�Formularis
Cada camp del formulari emmagatzema una dada específica; per exemple, el
nom o cognoms de l’usuari. És molt útil en el comerç electrònic per introduir
les dades personals, les comandes, etc.
Com podem veure, els formularis estan dins l’etiqueta <form> i a l’etiqueta
d’inici s’indicarà el mètode «GET» o «POST» per tal d’enviar la informació. A
més, han d’incloure l’atribut action on s’indicarà on serà enviada la infor-
mació del formulari. La informació pot ser enviada a una URL o a un fitxer
PHP, Python, etc. per ser processada.
Els controls es creen amb l’etiqueta <input> o <button>. Mentre que la pri-
mera etiqueta només permet incloure text, la segona permet altres elements
HTML com ara imatges.
L’etiqueta <div> ens permet crear divisions o seccions dins una pàgina web i Vegeu també
serveix bàsicament per agrupar elements i aplicar-los-hi un estil. A continua-
Al bloc d’estils CSS, podeu
ció, crearem una estructura en blocs per a una pàgina. veure què són els estils i com
aplicar-los.
<body>
<div id="contenidor">
<div id="capcalera">
<!-- Contingut de la capçalera -->
</div>
<div id="navegacio">
<!-- Contingut del menú de navegació -->
</div>
<div id="principal">
<!-- Contingut de la capçalera -->
Contingut de la pàgina.
</div>
<div id="peu">
<!-- Contingut de la capçalera -->
</div>
</div>
</body>
© FUOC • PID_00275797 17 Desenvolupament i administració web amb bases de dades
3. CSS
El llenguatge CSS, que fou creat pel World Wide Web Consortium (W3C), neix
junt amb l’HTML 4.0 amb l’objectiu de separar els continguts i la seva presen-
tació dins les pàgines web. Per una banda, amb el llenguatge HTML definim
l’estructura i els diferents elements, i, per l’altra, amb el llenguatge CSS, o tam-
bé anomenat fulls d’estil, podem definir l’aspecte dels continguts com ara el
color, la forma, els marges, etc.
D’aquesta forma, aconseguim que les nostres pàgines web tinguin una major CSS
accessibilitat i reduïm la complexitat del manteniment. A més, permet visua-
CSS, acrònim de Cascade Style
litzar la mateixa pàgina web en diferents dispositius. Sheets. Els fulls d’estil en casca-
da s’apliquen de dalt a baix se-
guint la propietat d’herència.
3.2. Estructura CSS
Els dissenys CSS són habitualment guardats en fitxers .css i contenen una sèrie
de regles. Totes les regles segueixen el mateix format:
h1 { color : black; }
<style type="text/css">
h1 { color: blue; font-family: Verdana; }
</style>
© FUOC • PID_00275797 18 Desenvolupament i administració web amb bases de dades
2)� En� un� fitxer� extern: és el cas més habitual. El mateix fitxer CSS es pot
incloure a moltes pàgines HTML. S’aplica amb l’etiqueta link. Per exemple:
A més, per tal de facilitar la lectura posterior del fitxer, cal posar-hi comentaris
amb:
/* Línia de comentaris*/
3.3. Selectors
Els selectors són aquells elements HTML sobre els quals s’apliquen les regles
d’estil i poden contenir moltes regles. Els diferents tipus de selectors existents
són els següents:
*{
….
}
p{
color: blue;
}
© FUOC • PID_00275797 19 Desenvolupament i administració web amb bases de dades
El selector es forma amb un «.» seguit de l’atribut class, com per exemple:
.important {
color: red;
text-align: center;
}
h2 {
text-align: center;
color: red;
}
p {
text-align: center;
© FUOC • PID_00275797 20 Desenvolupament i administració web amb bases de dades
color: red;
}
Per tal de no repetir el codi, agrupem els dos selectors separats per una coma,
tal com segueix:
Quan es realitza el disseny d’una pàgina web, tots els elements que formen un
document HTML es representen en caixes rectangulars. Podem definir l’altura,
l’amplada, el marge, etc., d’aquestes caixes.
En CSS podem definir els colors dels diferents elements mitjançant paraules
clau, en sistema RGB o en hexadecimal. Per tant, podríem definir un color de
la manera següent:
color:blue; color:#33FFF3
Pel que fa al fons de la web o de cada caixa, podem definir com el volem Enllaç recomanat
amb la propietat background, sigui un color o una imatge. Ho farem amb
En aquest enllaç, podeu veu-
background-color o amb background-image, respectivament. re els codis de color en for-
mat RGB o hexadecimal:
htmlcolorcodes.com/.
Un altre element important a tenir en compte és la tipografia. En aquest cas, el
CSS permet aplicar diferents estils. Per poder definir la tipografia, les propietats
bàsiques són: font-family, font-size, font-weight i font-style que
defineixen el tipus, la mida, l’amplada de la lletra i l’estil, respectivament.
.caixa {
font-family:Arial;
font-size: 20px;
font-weigth: normal;
color:#33FFF3;
background:#33FF52;
margin: 0 0 25px;
overflow: hidden;
padding: 20px;
}
Per tant, podem dir que la nostra pàgina web estarà formada per una sèrie de
caixes que contenen els diferents elements HTML. És habitual estructurar les
pàgines web seguint el conjunt de blocs següent: capçalera, menú, contingut,
peu de pàgina.
Per tal que el bloc menú aparegui a l’esquerra, per exemple, hem de conèixer
el concepte de posicionament i indicar-li que estigui a l’esquerra. S’indica amb
la propietat float: left. En cas que el bloc el vulguem a la dreta, el proce-
diment serà similar float: right.
© FUOC • PID_00275797 22 Desenvolupament i administració web amb bases de dades
Al bloc del contingut, observem que donem a la propietat float el valor left,
això significa que es posicionarà el més a l’esquerra possible mentre no hi hagi
cap element més, per tant, es posarà al costat del menú.
Codi�CSS
#contenidor {
Width: 800px;
}
#capcalera {
}
#menu {
Float: left;
Width: 150px;
}
#contingut {
Float: left;
Width: 550px;
}
#peu {
Clear: both;
}
Codi�HTML
<body>
<div id="contenidor">
<div id="capcalera">
</div>
<div id="menu">
</div>
<div id="contingut">
</div>
<div id="peu">
</div>
</div>
</body>
© FUOC • PID_00275797 23 Desenvolupament i administració web amb bases de dades
3.5. Pseudoclasses
Una pseudoclasse serveix per aplicar un estil a un element segons el seu estat.
Podem trobar quatre estats existents:
3.6. Llistes
Quan definim llistes en CSS podem controlar els estils, la posició, etc. Les
propietats bàsiques per fer-ho són:
ul li {
list-style-type: square;
}
© FUOC • PID_00275797 24 Desenvolupament i administració web amb bases de dades
4. JavaScript
Fins ara hem vist el llenguatge HTML i CSS per crear pàgines web. Gràcies a
aquests llenguatges podem crear l’estructura, el contingut i el disseny de les
nostres pàgines de forma estàtica. No obstant això, el fet que siguin comple-
tament estàtiques, fa que el contingut i la funcionalitat que podem donar a
les pàgines web sigui limitada. Per això, l’any 1995 sorgeix el llenguatge Ja-
vaScript.
JavaScript fou creat per Brendan Eich, treballador de Netscape, amb el nom
de Mocha. Posteriorment, s’anomenaria Live Script i, finalment, tal com el
coneixem avui en dia: JavaScript. Poc després d’aparèixer el llenguatge JavaS-
cript, es va fer un esforç perquè aquest llenguatge esdevingués un estàndard,
principalment a causa del fet que Microsoft havia desenvolupat un llenguat-
ge quasi equivalent anomenat JScript. Fruit d’aquest esforç, el 1997 va apa-
rèixer l’estàndard ECMAScript, amb el compromís de Netscape i Microsoft de
seguir-lo.
Els usos més habituals del JavaScript estan relacionats amb el fet de proporci-
onar interacció amb l’usuari. En podem destacar els següents:
(2)
Per tal que els diferents elements web tinguin el mateix comportament als Acrònim de Document Object
2 Model.
diferents navegadors, el consorci W3C va definir el DOM. El DOM permet
als programadors utilitzar el codi JavaScript per accedir i manipular les pàgi-
nes HTML de forma dinàmica, com si fossin documents XML. Aquesta és una
utilitat també disponible en molts altres llenguatges, com ara PHP o Java, de
manera que per mitjà del DOM es pot modificar la pàgina web dinàmicament.
Per inserir codi JavaScript en una pàgina web, s’ha d’incloure l’etiqueta
<script> en el header o en el body. En el codi següent, podem veure un exem-
ple:
<script>
Codi JavaScript
</script>
<script src="fitxer_extern.js"></script>
La sintaxi bàsica de JavaScript és molt similar a C o Java pel que fa a la decla- Enllaç recomanat
ració de variables, assignacions, operadors, instruccions condicionals o itera-
Podeu trobar un bon tutori-
tives. A més, com hem comentat, també és un llenguatge orientat a objectes. al de JavaScript a l’enllaç se-
Alguns objectes estan predefinits pel llenguatge. Per exemple, l’objecte win- güent: javascript.info/.
Quan l’usuari clica sobre el botó d’enviar el formulari, es crida a una funció
que en fa la validació. En aquesta funció, es comprova que es compleixin les
condicions que l’usuari indica a l’aplicació.
function validacio() {
valor = document.getElementById("camp").value;
if( !(/^\d{9}$/.test(valor)) ) {
alert('[ERROR] El camp ha de ser un telèfon');
return false;
}
return true;
}
4.4. Frameworks
Els frameworks són entorns de treball que ens ofereixen una sèrie d’eines com
són les classes CSS i les funcions JavaScript perquè les puguem incloure direc-
tament a les nostres pàgines web per desenvolupar la part frontend. Tenen una
àmplia acceptació entre els programadors web, ja que els aporta estructures
predefinides i, per tant, redueix molt el temps de codificació, facilita el mante-
niment entre les diferents persones de l’equip i la seguretat de què ja disposen
aquestes estructures.
A mesura que es van anar creant noves funcionalitats i més complexes, va ar-
ribar un punt en què jQuery es va considerar insuficient, i aleshores van sorgir
els frameworks JavaScript. Aquests frameworks incorporaven el patró MVC (mo-
del-vista-controlador). En són alguns exemples: Backbone, Ember o Angular.
Frameworks Descripció
Angular Creat per Google, integra funcionalitats usant Vanilla o Backbone i altres lli-
breries. Disposa de serveis propis per treure dades via AJAX sense necessitat
d’altres llibreries.
Ionic Llibreria basada en Angular que permet crear aplicacions per a Android i
iOS programant en JavaScript i empaquetant amb Cordoba.
Phonegap
Webcomponents
L’augment de les aplicacions mòbils, Android o iOS, va fer que alguns frameworks evo-
lucionessin i sorgissin noves eines com ara Phonegap. A causa de les mancances que te- Les últimes tendències pel que
nia Phonegap, pel que fa a l’experiència d’usuari, aquest va evolucionar cap a Cordoba fa a frameworks JavaScript són
els webcomponents, especifica-
i aquest, a Ionic.
ció de la W3C, per reutilitzar
elements. En són alguns exem-
ples: Polymer o React.
© FUOC • PID_00275797 28 Desenvolupament i administració web amb bases de dades
5. LAMP
En els apartats següents, explicarem els passos bàsics per instal·lar el conjunt
LAMP en un sistema GNU/Linux amb distribució Ubuntu 18.04.
Enllaços recomanats
Als enllaços següents, podeu trobar els passos equivalents per a tres de les distribucions
més àmpliament utilitzades: Fedora, OpenSuse i Mint.
Per a altres distribucions, podeu trobar igualment amb el cercador tutorials a internet
fàcils de seguir.
$ apt-get update
$ apt-get upgrade
1)�Instal·lació�del�servidor�web�Apache
2)�Instal·lació�de�la�base�de�dades�MySQL
Seguretat a la base de
dades
3)�Instal·lació�de�PHP
4)�Instal·lació�de�Phpmyadmin�(opcional)
Si volem crear una base de dades, anirem a la pestanya «Base de Dades» i in-
troduirem el nom de la nostra base de dades, per exemple «Botiga».
Per tal de crear taules dins d’aquesta, es pot fer mitjançant la pestanya «SQL»
introduint les diferents comandes SQL.
Si volem crear un usuari per tal que accedeixi a la nova base de dades o a les
noves taules, podem fer-ho des de la pestanya «Comptes d’usuari». En aquesta
pestanya, podrem veure el llistat d’usuaris existents. Per tal d’afegir un nou
usuari, per exemple «Pep», ho farem anant a «Afegeix un compte d’usuari» tal
com es mostra a continuació.
© FUOC • PID_00275797 33 Desenvolupament i administració web amb bases de dades
En aquest cas, a l’usuari Pep li hem donat una contrasenya i només li deixa-
rem fer operacions com «Select», «Insert», «Update», «Delete» i «File» sobre
les taules.
Enllaços recomanats
Si voleu més informació de configuració dels diferents serveis o com testejar-ho tot
adequadament, podeu seguir les instruccions de la web: www.linode.com/docs/web-ser-
vers/lamp/how-to-install-a-lamp-stack-on-ubuntu-18-04/.
A l’enllaç «How To Install and Secure phpMyAdmin on Ubuntu 18.04», podeu trobar in-
formació extra d’instal·lació i configuració del PhpMyAdmin com ara usuaris i permisos,
operacions en taules, etc.
© FUOC • PID_00275797 34 Desenvolupament i administració web amb bases de dades
6. PHP
El llenguatge PHP és un llenguatge d’script i de codi obert del costat del servi- PHP
dor (backend) que ha esdevingut molt popular per ser especialment adequat
PHP són les sigles d’Hypertext
per al desenvolupament web i per la facilitat de ser incorporat a pàgines HTML. Processor (preprocessador
d’hipertext), que fou originà-
riament dissenyat per al pre-
Nascut l’any 1995 de la mà de Rasmus Lerdorf, ha anat passant per diferents processament de text pla en
UTF-8.
versions i, per tant, de millores. Tot i que les dues primeres versions, PHP 3 i
PHP 4 havien aconseguit una plataforma potent i estable, no és fins a la versió
5 en què s’introdueix la programació orientada a objectes (POO). Finalment,
PHP 7 millora algunes mancances que tenia la versió anterior pel que fa a la
POO. Actualment, podem afirmar que el llenguatge PHP pot ser utilitzat en la
majoria de servidors web, a més de sistemes operatius i plataformes.
Amb una corba d’aprenentatge molt curta, a causa de la gran similitud amb
altres llenguatges com el C, facilita als desenvolupadors la creació de webs di-
nàmiques sense haver d’aprendre noves funcions i permet connexions a ser-
vidors de bases de dades com ara MySQL, Oracle, DB2, MongoDB, etc.
Enllaç recomanat
En aquesta pàgina web podem trobar-hi tota la documentació referent a PHP, fent especial
èmfasi en l’apartat «Referencia de funciones» de les diferents funcions, on hi podem
veure detallades totes les funcions existents a nivell de sintaxi i petits exemples.
El codi PHP ha d’anar precedit per l’etiqueta d’inici <?php i quan s’acaba per
l’etiqueta final ?>. Aquestes etiquetes delimiten el codi PHP per tal de poder
ser incrustat en codi HTML.
Seguidament, podem veure el codi PHP del nostre primer i més senzill progra-
ma «Hola món».
<html>
<head>
<title>Prova de PHP</title>
</head>
<body>
<?php echo '<p>Hola Món</p>'?>
</body>
</html>
6.2.1. Variables
Vegem diferents valors que pot prendre una variable depenent del seu tipus
de dades. Observeu que no hi ha una definició explícita de tipus.
<?php
$var_enter = 3; //enter
$var_real = 3.1416; //real
$var_cadena = "cad"; //cadena
$var_bool = TRUE; //booleà
$data = date("m.d.y"); //resultat de la funció date
?>
© FUOC • PID_00275797 36 Desenvolupament i administració web amb bases de dades
Com en el llenguatge C, els comentaris en PHP poden ser fets amb la doble
barra (//) o amb la barra i asterisc per obertura (/*) i asterisc i barra per tan-
cament (*/).
Estructures condicionals
1)�Sintaxi�if-else
if (expressió) {
sentencia1;
} else {
Sentencia2;
}
<?php
$producte=true;
if ($producte == true){
echo 'existeix el producte';
}else{
echo 'no existeix el producte';
}
?>
2)�Sintaxi�switch
switch (expressió){
case valor1:
instrucció1:
break;
case valor2:
intrucció2;
break;
…
default:
instruccions;
break;
}
© FUOC • PID_00275797 37 Desenvolupament i administració web amb bases de dades
<?php
$preu=30;
switch ($preu){
case 30:
echo 'article amb descompte';
break;
case 20:
echo 'article sense descompte';
break;
…
default:
echo 'error';
break;
}
?>
Estructures repetitives
1)�Sintaxi�while
<?php
while (condició) {
sentències;
}
?>
2)�Sintaxi�do-while
<?php
do{
sentències;
} while (condició);
?>
3)�Sintaxi�for
<?php
for ($var=val_ini;cond;incr) {
sentències;
}
?>
© FUOC • PID_00275797 38 Desenvolupament i administració web amb bases de dades
6.2.3. Funcions
Hi ha dos tipus de funcions: les que crea el programador o les funcions del Enllaç recomanat
llenguatge.
A la web oficial de PHP, po-
deu trobar definides totes les
En les funcions creades pel programador, hem de tenir en compte que el nom funcions del llenguatge: la
seva sintaxi i exemples.
de la funció segueix les mateixes pautes que el nom de les variables. Per tant,
ha de començar amb una lletra o guió baix. És important destacar que el nom
d’aquestes no pot ser una funció nativa de PHP.
Com en la majoria de llenguatges d’alt nivell, a les funcions se’ls poden passar
variables per valor o per referència. Per defecte, s’utilitza el pas per valor com
en l’exemple següent:
//Crida a la funció
$param1=2;
$param2=3;
suma ($param1, $param2);
En cas de voler modificar els valors de les variables que es passen per paràmetre,
passarem els valors per referència a la funció amb un &$ davant el nom de la
variable suma (&$param1, &$param2);.
6.2.4. Arrays
<?php
$array_productes = array('producte1', 2, 3+4.5);
?>
© FUOC • PID_00275797 39 Desenvolupament i administració web amb bases de dades
<?php
$array_productes = array('nom'=>'llibre HTML', 'descripcio'=>'llibre tecnic', 'preu'=>20);
?>
Per accedir al valor, ho hem de fer amb el nom de la clau. Si volem accedir al
preu, ho farem així: $array_productes['preu'];
<?php
$llibres = array();
$llibres[0]=array('nom'=>'llibre HTML', 'descripcio'=>'llibre tecnic', 'preu'=>20);
$llibres[1]=array('nom'=>'llibre PHP', 'descripcio'>'llibre tecnic', 'preu'=>30);
?>
Per tal de recórrer a un array, utilitzarem la funció foreach. Es pot fer de dues
formes:
o bé:
Variables Descripció
reservades
prova_get.php?producte=llibre&descripcio=html
El codi PHP encastat dins l’HTML seria el següent (aquest codi imprimeix el
valor de la variable $_GET):
<html>
<head>
<title>Exemple GET</title>
</head>
<body>
<pre>
<?php
print_r($_GET);
?>
</pre>
</body>
</html>
© FUOC • PID_00275797 41 Desenvolupament i administració web amb bases de dades
Execució prova_get.php.
<html>
<head>
<title>Exemple POST</title>
</head>
<body>
<h2>Exemple variables POST</h2>
<form method="post">
Escriu el teu nom: <input type="text" name="nom" value="<?=@$_POST['nom'];?>"> <br> <br>
Escriu el teu cognom: <input type="text" name="cognom" value="<?=@$_POST['cognom'];?>"> <br> <br>
<input type="submit" value="Enviar">
</form>
<pre>
<?php
if($_POST)
{
print_r($_POST);
}
?>
</pre>
</body>
</html>
Execució prova_post.php.
Finalment, estudiarem les variables� de� sessió ja que són molt útils amb
PHP per tal que la informació d’usuari persisteixi en totes les pàgines
d’un lloc web. S’utilitzen, per exemple, en la implementació de sistemes
segurs d’identificació. Primer de tot, cal iniciar la sessió amb la funció
session_start(). A continuació, ja podrem assignar contingut a les varia-
bles de la sessió. Per exemple, si volem emmagatzemar el nom de l’usuari, el
que haurem de fer és:
<?php
session_start();
$_SESSION["nom"]="Pep";
echo "El teu nom és" . $_SESSION["nom"] . ".<br>";
?>
6.2.6. Formularis
En la taula següent, podem observar els tipus de formularis més habituals que
podem trobar.
input type="radio" Caixes seleccionables en grups: només permet escollir una opció.
select S’utilitza per crear una llista desplegable. Cada element de la llista
es defineix amb el tag <option> anterior.
<html>
<body>
<form action="formpost.php" method="post">
Nom:<input type="text" name="nom"><br>
Cognom:<input type="text" name="cognom"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Quan l’usuari cliqui a «Enviar les dades del formulari», aquestes seran enviades
al fitxer formpost.php mitjançant el mètode POST per ser processades. Aques-
tes, un cop rebudes al fitxer PHP, poden ser tractades o emmagatzemades en
una base de dades.
<html>
<body>
El teu nom:<?php echo $_POST["nom"]; ?><br>
El teu cognom:<?php echo $_POST["cognom"]; ?>
</body>
</html>
De vegades, cal validar la informació que s’introdueix per mitjà dels formula-
ris. Aquest procés pot ser realitzat en el mateix codi PHP o per mitjà de JavaS-
cript, que serà més eficient.
© FUOC • PID_00275797 44 Desenvolupament i administració web amb bases de dades
7. MySQL
Creat per MySQL AB, MySQL va ser adquirit per Sun Microsystems el 2008 i,
finalment, comprat per Oracle Corporation dos anys després. El 2009 es va
crear una branca de MySQL anomenada MariaDB.
Molts són els llenguatges de programació que mitjançant diferents API perme- MySQL
ten accedir a bases de dades MySQL. En aquest sentit i al llarg d’aquest apartat,
El llenguatge que utilitza
estudiarem les diferents funcions de MySQL en PHP, ja que PHP és el llenguat- MySQL és SQL.
ge per excel·lència usat en programació web i que ja s’ha estudiat en l’apartat MySQL està inclòs en els pa-
quets LAMP (Linux) o WAMP
anterior. Com a últim apunt i abans d’entrar en matèria, convé mencionar que (Windows). Pot ser instal·lat en
el paquet o de forma individu-
MySQL és utilitzat per llocs web grans i populars, com ara Google o Facebook. al.
La intenció d’aquest apartat és mostrar el funcionament de les funcions bàsi- Web oficial de MySQL:
ques de MySQL en PHP. Per tant, les funcions que es veuran seran les següents: www.mysql.com
Funció Descripció
1)�Connexió�al�servidor
© FUOC • PID_00275797 45 Desenvolupament i administració web amb bases de dades
<?php
$usuari = "root";
$password = "";
$servidor = "localhost";
$basededades = "botiga";
$connexio = mysqli_connect( $servidor, $usuari, $password ) or die ("No s’ha pogut connectar
al servidor de la bases de dades");
?>
2)�Selecció�de�la�base�de�dades
3)�Execució�de�la�consulta�SQL
Recordem que les operacions de consulta en SQL poden ser de diferent tipus:
Amb el codi següent, farem una consulta del contingut de la taula llibres.
4)�Mostrar�els�resultats�de�la�consulta
© FUOC • PID_00275797 46 Desenvolupament i administració web amb bases de dades
Amb el codi següent, anirem mostrant les diferents files obtingudes com a
resultat de la consulta.
5)�Tancar�la�connexió
Un cop hem realitzat totes les operacions cap a la nostra base de dades, podem
tancar la connexió al servidor.
mysqli_close( $connexio );
6)�Resultat
Bibliografia
Bibliografia complementària
Welling, L.; Thomson, L. (2018). Desarrollo web con PHP y MySQL (5a. ed.). Madrid: Anaya
Multimedia.
Gauchat, J. D. (2019). El gran libro de HTML 5, CSS3 y JavaScript (3a. ed.). Barcelona: Mar-
combo Ediciones Técnicas.
Webgrafia
AWS
w3schools.com
ecma international
JavaScript.info
Apache
php
MySQL