6

Click here to load reader

PHP e Mysql - SELECT

Embed Size (px)

Citation preview

Page 1: PHP e Mysql - SELECT

acesso remoto a bases de dados

Page 2: PHP e Mysql - SELECT

O MySQLModelo cliente-servidor da solução usbwebserver

O browser cliente pede o ficheiro index.php ao servidor com endereço IP 127.0.0.1

No servidor, o serviço Apache está à escuta no porto 80. Quando recebe um pedido vai procurar o ficheiro ao directório definido (root no caso do usbwebserver, ou htdocs noutros)

O Apache observa o código recebido. Se tiver tags <? ?> envia-o ao interpretador PHP para ele o processar (caso o ficheiro não contenha qualquer tag de php, devolve de imediato o ficheiro ao cliente tal como está guardado)

O interpretador recebe o código PHP e processa-o. Se o código tiver pedidos de ligação a um servidor de Base de dados (local ou remoto) - MySQL neste caso - ele próprio estabelece ligação com o mesmo, envia-lhe uma query de SQL e recebe a resposta

Depois de processado todo o código php, o interpretador devolve ao Apache o resultado da sua tarefa (aqui já só lhe devolve código HTML, resultado do seu trabalho)

O Apache recebe o código HTML do interpretador e envia-o para o browser do cliente

Uma vez que os browsers entendem código HTML, recebem-no e constroem a página com o resultado final pedido.

Pasta root do Apache

(htdocs)

index.php...

http://127.0.0.1/index.php

127.0.0.1

12

7.0

.0.1

SQL

resposta

pedido h

ttp de in

dex.php

(servidor 127.0.0.1)

resposta

(página in

dex.php

apenas c/ código H

TML)

html

código

interpretador

<? php ?>

Page 3: PHP e Mysql - SELECT

O MySQLLigação ao servidor através do PHP | código SQL

SET NAMES latin1;SET FOREIGN_KEY_CHECKS = 0;

DROP TABLE IF EXISTS `CDs`;

CREATE TABLE `CDs` ( `idCd` smallint(6) NOT NULL auto_increment, `nomeCd` varchar(50) NOT NULL, `emStock` smallint(5) unsigned NOT NULL, `emEncomenda` smallint(5) unsigned NOT NULL, `emReserva` smallint(5) unsigned NOT NULL, `Genero` enum('Classical','Popular') NOT NULL, `Categoria` varchar(20) NOT NULL, `RowUpdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`idCd`,`emEncomenda`)) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=latin1;

INSERT INTO `CDs` VALUES('1','Bloodshot','10','5','3','Popular','Rock','2009-04-06 11:42:29'), ('2','The Most Favorite Opera Duets','10','5','3','Classical','Opera','2009-04-06 11:42:29'), ('3','New Orleans Jazz','17','4','1','Popular','Jazz','2009-04-06 11:42:29'), ('4','Music for Ballet Class','9','4','2','Classical','Dance','2009-04-06 11:42:29'), ('5','Music for Solo Violin','24','2','5','Classical','General','2009-04-06 11:42:29'), ('6','Cie li di Toscana','16','6','8','Classical','Vocal','2009-04-06 11:42:29'), ('7','Mississippi Blues','2','25','6','Popular','Blues','2009-04-06 11:42:29'), ('8','Pure','32','3','10','Popular','Jazz','2009-04-06 11:42:29'), ('9','Mud on the Tires','12','15','13','Popular','Country','2009-04-06 11:42:29'), ('10','The Essence','5','20','10','Popular','New Age','2009-04-06 11:42:29'), ('11','Embrace','24','11','14','Popular','New Age','2009-04-06 11:42:29'), ('12','The Magic of Satie','42','17','17','Classical','General','2009-04-06 11:42:29'), ('13','Swan Lake','25','44','28','Classical','Dance','2009-04-06 11:42:29'), ('14','25 Classical Favorites','32','15','12','Classical','General','2009-04-06 11:42:29'), ('15','La Boheme','20','10','5','Classical','Opera','2009-04-06 11:42:29'), ('16','Bach Cantatas','23','12','8','Classical','General','2009-04-06 11:42:29'), ('17','Golden Road','23','10','17','Popular','Country','2009-04-06 11:42:29'), ('18','Live in Paris','18','20','10','Popular','Jazz','2009-04-06 11:42:29'), ('19','Richland Woman Blues','22','5','7','Popular','Blues','2009-04-06 11:42:29'), ('20','Morimur (after J. S. Bach)','28','17','16','Classical','General','2009-04-06 11:42:29'), ('21','The Best of Italian Opera','10','35','12','Classical','Opera','2009-04-06 11:42:29'), ('22','Runaway Soul','15','30','14','Popular','Blues','2009-04-06 11:42:29'), ('23','Stages','42','0','8','Popular','Blues','2009-04-06 11:42:29'), ('24','Bach: Six Unaccompanied Cello Suites','16','8','8','Classical','General','2009-04-06 11:42:29');

Page 4: PHP e Mysql - SELECT

O MySQLLigação ao servidor através do PHP | as funções

• mysql_connect ( endereço do servidor, utilizador, password ) -> Estabelece ligação com servidor de base de dados

• mysql_select_db ( nome da base de dados, variável de ligação ) -> Abre base de dados

• mysql_query ( query de sql ) -> Envia uma query à base de dados (INSERT, UPDATE, DELETE OU SELECT).

• mysql_fetch_array ( variável de resultado da query ) -> Devolve array com campos de uma linha e avança ponteiro para linha (registo) seguinte.

• mysql_num_rows ( variável de resultado da query ) -> Devolve o número de registos da consulta (query)

• mysql_close ( variável de ligação ) -> Encerra a ligação com o servidor.

Page 5: PHP e Mysql - SELECT

O MySQLLigação ao servidor através do PHP | exemplo funcional/////////////////////////////// configuração de acesso ao servidor de base de dados /////////////////////////////////////////$servidor="localhost"; $utilizador="root"; $passwd="esap"; $baseDados = "Aula1";//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

$ligacao = mysql_connect ( $servidor, $utilizador, $passwd ) or die ( 'Erro ao ligar ao servidor... ' . mysql_error() );mysql_select_db ( $baseDados, $ligacao ) or die ( 'Erro ao executar mysql_select_db: ' . mysql_error () );

$query_sql = " SELECT * FROM CDs WHERE Categoria='Blues' ";$resultado = mysql_query ( $query_sql ) or die ( 'Erro ao executar mysql_query: ' . mysql_error () );echo ("<h1> Primeira ligação à BD {$baseDados} </h1>");echo ("<h3> Vou fazer a seguinte query: {$query_sql} </h3>");

$contador = 1;

while ( $linhaTabela = mysql_fetch_array ( $resultado ) ){ echo ("{ $contador } > {$linhaTabela ['nomeCd']} - {$linhaTabela ['Categoria']} <br />"); $contador++;}

echo ("<h4> Número de registos encontrados na tabela: " . mysql_num_rows ( $resultado ) . "</h4>");mysql_close ( $ligacao );

Page 6: PHP e Mysql - SELECT

O MySQLLigação ao servidor através do PHP | exemplo prático

http://aulasftp.netai.net/mysql/act1/