Quando nos referimos a um grande projecto ninguém pensa que vamos usar ficheiros de texto para guardar dados, sem sistemas de indexação ordenados. O método usado é virado para o uso de bases de dados, existem muitos sistemas de bases de dados que se podem interligar com a linguagem PHP no entanto neste pequeno introdutório vamo-nos focar apenas no SGBD MYSQL.
Para quem nunca lidou com bases de dados pode parecer um assunto assustador e até complicado, o objectivo deste pequeno tutorial e desmistificar esse conceito.
Alguns paramentros que assumimos.
1º o servidor de mysql encontra-se no servidor
localhost2º a base de dados está criada com o nome
nome_da_minha_bd3º foram criadas permissões para o utilizador com nome =
utilizador através da senha
minhasenhaO primeiro passo a dar é executar uma conexão á base de dados:
Do manual retiramos a seguinte função:
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]])A função devolve o Id do resource em caso de sucesso ou FALSE em caso de não se conseguir conectar.
Como usamos a função??
(1) ?
$con = mysql_connect(localhost,utilizador,minhasenha) or die (Impossivel Criar a conexão);
?>
Ok, este ponto está definido, e foi fácil.
O segundo passo é pensar, ok, já me conectei ao servidor, mas a qual base de dados?.
Sim é verdade, vamos ter de direccionar a ligação criada para uma base de dados especifica, isto é conseguido através do seguinte comando.
bool mysql_select_db ( string database_name [, resource link_identifier])Esta função retorna TRUE em caso de sucesso e FALSE no caso de não se conseguir conectar.
Vamos agora usar a função:
(2) ?
$db = mysql_select_db(nome_da_minha_db,$con);
?>
Repare ao 2 argumento da função, reporta-se ao identificador do recurso conseguido através da conexão á base de dados em
(1), este argumento apenas é necessário no caso de estarmos a usar conexões a múltiplas bases de dados.
Ponto da Situação, já nos conectamos ao servidor e á base de dados especifica, agora queremos tirar dados das tabelas existentes.
Vamos supor que a seguinte tabela foi criada com o comando :
CREATE TABLE tvd_dicionario (
id int(11) NOT NULL auto_increment,
pt varchar(255) default NULL,
eng varchar(255) default NULL,
ita varchar(255) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
Onde podemos observar os seguintes campos, id, pt, eng, ita, ger, fr, es.
Um exemplo da tabela preenchida seria:
dicionário
Como já deu para perceber é um dicionáro, o objectivo é tirar da tabela a lista de todas as palavras existentes.
Para tirar algo da base de dados temos de fazer um pedido, isso é conseguido através do comando:
resource mysql_query ( string query [, resource link_identifier [, int result_mode]])O resultado devolve o recurso ou FALSE em caso de Sucesso ou Insucesso respectivamente, apenas é necessário o uso do 2º argumento caso estejas a usar multiplas conexões, no entanto para ser coerente vamos usar o parâmetro.
Como usamos a função??
(3) ?
$pergunta = SELECT id,pt,eng,ita FROM dicionario order by pt;
$res = mysql_query($pergunta,$con);
// Vamos verificar se teve sucesso
if($res)
echo Pergunta com sucesso;
?>
Já conseguimos perguntar ao servidor de mysql o que queremos, mas para perguntar usámos algo que pode ser novo SELECT id,pt,eng,ita FROM Dicionario order by pt Isto é a linguagem SQL, que se usa na conversação com a base de dados, neste caso estamos a perguntar o seguinte , em português corrente:
Selecciona os campos id,pt,eng,ita da Base de dados Dicionário e ordena por ordem crescente o campo pt.Pode parecer difícil, mas num próximo dia tentarei explicar esta linguagem em pormenor, continuando com o nosso objectivo, agora que temos a pergunta á base de dados efectuada, temos de retirar os dados e imprimi-los.
Antes de retirar os dados do recurso é necessário formatar esses dados, sobre a forma que desejamos usar, para isso efectuei o seguinte comando:
object mysql_fetch_object ( resource result)O objectivo é ficar com o recurso transformado num objecto em que posso aceder a todos os campos através de simples passos, como por exemplo $objecto->id para aceder ao id retornado.
Vamos então usar o comando:
(4) ?
// temos o $res com sucesso
if($res)
$objecto = mysql_fetch_object($res);
echo $objecto->id;
?>
O resultado seria a escrita do número 2 no output.
Pensemos agora num pormenor, mas nós queremos todas as linhas de um dicionário e não só a 1ª, ok para isso basta-nos efectuar um ciclo na criação do objecto.
(4) ?
// temos o $res com sucesso
if($res)
while($objecto = mysql_fetch_object($res))
echo $objecto->id. .$objecto->pt. .$objecto->eng.
;
?>
O resultado deste pequeno pedaço de código está á vista:
2 Cão Dog
1 homem man
Vamos agora juntar todos os pedaços numa peça só e ficar com o nosso pequeno script completo.
?
//(1)
$con = mysql_connect(localhost,utilizador,minhasenha) or die (Impossivel Criar a conexão);
//(2)
$db = mysql_select_db(nome_da_minha_db,$com);
//(3)
$pergunta = SELECT id,pt,eng,ita,ger,fr,es FROM Dicionario order by pt;
$res = mysql_query($pergunta,$con);
// Vamos verificar se teve sucesso
if($res) //(4)
while($objecto = mysql_fetch_object($res))
echo $objecto->id. .$objecto->pt. .$objecto->eng.
;
mysql_close($con);
?>
Esta última linha destina-se a fechar a conexão á base de dados, e libertar o link.
Espero que tenha sido bastante explicito e detalhado