INSERCIÓ DE DADES AMB PHP I MySQL. EXEMPLES I EXERCICIS RESOLTS.

 

Anem a explicar com inserir registres a la base de dades MySQL a través de codi PHP. En concret, afegirem registres a la taula agenda que havíem creat prèviament amb phpMyAdmin. Per a això haurem de realitzar el que s'anomena una consulta SQL d'inserció (insert into) i anar afegint tants registres amb els seus corresponents valors per als camps com desitgem.

Partirem de la nostra base de dades on tenim una taula anomenada agenda amb les següents dades:

nom

cognoms

direccion

telèfon

edat

alçada

Manuel Jesús

López de la Rosa

C/ Joan Baptista Nº 3

658954875

32

1.80

Maria

Manzano Caps

C/ Arc del triomf Nº 7

695001002

19

1.99

Pedro Somoza Castro C/ Solera nº88, B 88834321 44 1.66
Juana Pérez Rozas AV Luarcato # 22 888111222 22 1.77

Per realitzar la inserció de dades utilitzarem una sintaxi d'aquest tipus:

mysqli_query($enllaç "INSERT INTO VALORS

NOMTAULA(dadeCol1, dadeCol2, ... dadeColN)");

On mysqli_query indica que realitzarem una operació (en general es denominen consultes, encara que en aquest cas l'operació sigui una inserció de dades), $link és l'identificador de connexió que hàgim obtingut amb mysqli_connect, NOMTAULA és el nom de la taula en la qual realitzarem la inserció de dades i dadeCol1, dadeCol2, ..., dadeColN representa les dades que anem a inserir a la taula. Tenir en compte que hem d'indicar les dades en el mateix ordre en què es troben les columnes a la taula. Per exemple per a la nostra taula agenda haurem de seguir l'ordre: nom, cognoms, adreça, telèfon, edat, altura (ordre de les columnes).

 

EXEMPLE D'INSERCIÓ DE DADES EN UNA TAULA

Escriu aquest codi en un editor i guarda'l en un arxiu amb un nom com ejemplo1.php. Després executa el codi (una sola vegada, tingues en compte que si ho executes diverses vegades inseriran diverses vegades repetidament les dades a la base de dades). Recorda també que has de canviar i posar els teus propis valors en les funcions mysqli_connect i mysqli_select_db.

<? Php // Exemple curs PHP aprenderaprogramar.com

$link=mysqli_connect("sql203.byethost7.com","b7_10356956","*****");

mysqli_select_db($enllaç,"b7_10356956_mevabasededades");

$titlles=$link->query("SET NAMES 'utf8'"); // Perquè s'insereixin els accents correctament

mysqli_query($enllaç "INSERT INTO VALORS ordre del dia ('pedro2', 'Gómez Gómez', 'C / Buenaventura 54', '699.887.766', de 35 anys, 1,98)");

mysqli_query($enllaç "INSERT INTO VALORS ordre del dia ('antonio2', 'Delgado Folken', 'C / El Miraculós 77', '699.667.744', 88, 1.71)");

mysqli_close($link); // Tanquem la connexió amb la base de dades

echo 'Les dades han estat inserits a la base de dades';

?>

Nota: si féssim servir sintaxi no mysqli es faria servir mysql_query ("INSERT INTO VALORS nomDeLaTaula (dadesCol1, dadesCol2, ... dadesColN", $enllaç).

Hem de tenir cura de posar els valors en el insert en l'ordre en què apareixen a la base de dades quan vam crear la taula. És a dir, el primer valor serà per a la primera columna (en el nostre exemple tipus varchar i correspondrà amb el nom), el segon serà per a la segona columna (en el nostre exemple tipus varchar i es correspondrà amb els cognoms), etc. També haurem de parar atenció perquè els tipus de dades inserides es corresponguin amb els de la taula. Per exemple, no hem d'inserir un valor numèric decimal si s'espera un sencer.

Ara anem a executar el codi del lliurament anterior del curs per veure els nous registres afegits per pantalla. Escriu aquest codi en un editor i guarda'l en un arxiu amb un nom com ejemplo2.php. Recorda que has de canviar i posar els teus propis valors en les funcions mysqli_connect i mysqli_select_db.

<html> <head> <meta charset = "utf-8"> </head> <body>

<? Php // Exemple curs PHP

mostrarDatdes function($resultats) {

if($resultats!=NULL) {

echo "- Nom:" $resultats['nom'] "<br/>";.

echo "- Cognoms:". $resultats['cognoms']. "<br/>";

echo "- Direcció:" $resultats['adreça'] "<br/>";.

echo "- Telèfon:" $resultats['telefon'] "<br/>";.

echo "- Edat:". $resultats['edat']. "<br/>";

echo "********************************** <br/>";}

else {echo "No hi ha <br/> Mas dades !!! <br/>";}

}

$link=mysqli_connect ("sql203.byethost7.com","b7_10356956","*****");

mysqli_select_db($enllaç,"b7_10356956_mibasededatos");

$titlles=$link->query("SET NAMES 'utf8'"); // Perquè es mostrin els accents correctament

$resultat=mysqli_query($enllaç,"SELECT * FROM agenda");

while($fila=mysqli_fetch_array($resultat)) {mostrarDades($fila);}

mysqli_free_result($resultat); 

mysqli_close($enllaç);

?>

</body>

</html>

El resultat esperat és que es mostrin per pantalla tots els resultats de la consulta:

- Nom: Manuel Jesús - Cognoms: López de la Rosa - Adreça: C / Joan Baptista Nº 3 - Telèfon: 658.954.875 - Edat: 32

**********************************

- Nom: Maria - Cognoms: Manzano Cabezas - Adreça: C / Arc del triomf Nº 7 - Telèfon: 695.001.002 - Edat: 19

**********************************

- Nom: Pedro - Cognoms: Somoza Castro - Adreça: C / Solera nº88, B - Telèfon: 88.834.321 - Edat: 44

**********************************

- Nom: Juana - Cognoms: Pérez Rozas - Adreça: Avda. Luarcato nº22 - Telèfon: 888.111.222 - Edat: 22

**********************************

- Nom: Pedro - Cognoms: Gómez Gómez - Adreça: C / Buenaventura 54 - Telèfon: 699.887.766 - Edat: 35

**********************************

- Nom: Antonio - Cognoms: Delgado Folken - Adreça: C / El Miraculós 77 - Telèfon: 699.667.744 - Edat: 88

**********************************

Hem visualitzat el contingut de la base de dades usant una consulta i mostrant els resultats per pantalla. Tingues en compte que també pots veure el contingut de la base de dades accedint directament a ella. Accedeix al panell d'administració del teu servidor, després a phpMyAdmin i comprova com els nous valors inserits es troben a la taula de la base de dades.

Nota: les noves dades afegits poden aparèixer al final o al principi de la taula. Si volguéssim veure les dades amb un determinat ordre hauríem d'incloure les instruccions oportunes, però no anem a parlar-ne en aquest moment.

Anem a resumir el que hem fet: d'una banda hem accedit a la base de dades mitjançant codi PHP i hem inserit dues noves files (en executar ejemplo1.php) a la taula agenda. D'altra banda visualitzem el contingut de la taula agenda (ejemplo2.php) realitzant una consulta a la base de dades i vam comprovar que apareixen els dos nous registres afegits, corresponents a "Pedro Gómez Gómez" i "Antonio Delgado Folken".

Les operacions d'inserció en bases de dades són molt freqüents en programació web. Tingues en compte per exemple que cada vegada que es registra un usuari en una pàgina web cal guardar la informació de l'usuari (nom, correu electrònic, etc.). Igualment cada vegada que es produeix una compra mitjançant comerç electrònic cal emmagatzemar la informació de la compra a la base de dades. És per tant una operació bàsica i de gran interès dins de la programació amb bases de dades.

 

EXERCICI

Insereix a la taula agenda de la base de dades que estem utilitzant les dades d'una persona el nom és Jesús Murillo Bru, de 34 anys, el telèfon és 655.221.122, viu al c/ Pintor Murillo nº33, i té una alçada de 1.67 metres. Presta atenció a l'ordre en que has d'introduir les dades. Un cop realitzada la inserció, comprova visualitzant els registres existents en la taula que la inserció s'hagi realitzat correctament. Després accedeix al panell d'administració del servidor ia la base de dades amb phpMyAdmin. Visualitza els registres a la taula i esborra la fila corresponent a Jesús Murillo Bru utilitzant phpMyAdmin. Com pots comprovar, podem operar sobre la taula tant a través de phpMyAdmin com a través de codi PHP.