Finalmente! Depois de muita dieta, cá vamos nós para a parte 6!
No último tutorial, a maioria decidiu que vamos criar, inserir e consultar uma bd com mails. Ora vamos lá!
Criação e Consulta de bds!Ora bem... a primeira coisa que temos a fazer é ter uma bd onde brincar.
Eu criei uma bd chamada "teste" e usei o phpmyadmin para inserir este comando sql:
CREATE TABLE `mails` (
`mails_id` INT( 9 ) NOT NULL AUTO_INCREMENT ,
`mails_nome` VARCHAR( 255 ) NOT NULL ,
`mails_mail` VARCHAR( 255 ) NOT NULL ,
`mails_data` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `mails_id` )
) TYPE = MYISAM ;
o que criou uma tabela chamada "mails" com 4 campos:
mails_id - a chave primária, que vai ter uma numeração ordenada e sequencial;
mails_nome - o nome da pessoa cujo mail vamos inserir;
mails_mail - (acho que não é preciso dizer o que isto é
);
mails_data - a data em que foi inserido na bd;
Assim sendo, já temos a bd para brincar. Vamos mexer nela!
Vamos criar um formulário como já tinhamo visto anteriormente. O html fica:
<table border='0' width='250'>
<form method='POST' action='?gravar=sim'>
<tr>
<td width='64' align='center'>Nome</td>
<td><p align='center'><input type='text' name='nome' size='20'></td>
</tr>
<tr>
<td width='64' align='center'>Mail</td>
<td><p align='center'><input type='text' name='mail' size='20'></td>
</tr>
<tr>
<td width='64'> </td>
<td><p align='center'><input type='submit' value='inserir' name='botao'></td>
</tr>
</form>
</table>
e a parte do php fica:
<?
if($gravar=='sim'){
comando a executar
}
?>
juntando os dois num ficheiro chamado "form.php" fica assim:
<?
if($gravar=='sim'){
comando a executar
}
?>
<table border='0' width='250'>
<form method='POST' action='?gravar=sim'>
<tr>
<td width='64' align='center'>Nome</td>
<td><p align='center'><input type='text' name='nome' size='20'></td>
</tr>
<tr>
<td width='64' align='center'>Mail</td>
<td><p align='center'><input type='text' name='mail' size='20'></td>
</tr>
<tr>
<td width='64'> </td>
<td><p align='center'><input type='submit' value='inserir' name='botao'></td>
</tr>
</form>
</table>
mas vamos ter que dar o comando para inserir o conteudo na tabela. Para efectuar a ligação à tabela, podemos por:
$dbh=mysql_connect ("localhost", "USERNAME", "PASSWORD") or die ('Lamentamos, mas não é possivel ligar à base de dados porque: ' . mysql_error());
mysql_select_db ("BASE_DE_DADOS");
E juntamos o comando mysql:
$query = "INSERT INTO mails (mails_nome,mails_mail,mails_data) VALUES ('$nome','$mail','$data')" or die (mysql_error());
$result = mysql_query($query) or die(mysql_error());
Este comando vai inserir as variaveis na bd. Mas falta uma! o "$data" ainda não foi definida! ok, usamos:
$data = date("d/m/Y");
assim, já temos a variavel "$data".
Vamos resumir. Já temos então:
<?
if($gravar=='sim'){
$dbh=mysql_connect ("localhost", "USERNAME", "PASSWORD") or die ('Lamentamos, mas não é possivel ligar à base de dados porque: ' . mysql_error());
mysql_select_db ("BASE_DE_DADOS");
$data = date("d/m/Y");
$query = "INSERT INTO mails (mails_nome,mails_mail,mails_data) VALUES ('$nome','$mail','$data')" or die (mysql_error());
$result = mysql_query($query) or die(mysql_error());
}
?>
<table border='0' width='250'>
<form method='POST' action='?gravar=sim'>
<tr>
<td width='64' align='center'>Nome</td>
<td><p align='center'><input type='text' name='nome' size='20'></td>
</tr>
<tr>
<td width='64' align='center'>Mail</td>
<td><p align='center'><input type='text' name='mail' size='20'></td>
</tr>
<tr>
<td width='64'> </td>
<td><p align='center'><input type='submit' value='inserir' name='botao'></td>
</tr>
</form>
</table>
e (depois de muito suor) temos o formulário para inserir mails na tabela que criamos!
Dúvidas? ninguém se acusa portanto vou continuar!
Q: E como vamos consultar esta bd?
R: com um código assim:
$query = "SELECT * FROM mails ORDER BY -mails_mail";
$result = mysql_query($query) or die (mysql_error());
while ($row = mysql_fetch_array($result)){
extract($row);
echo"$mails_nome --> $mails_mail, inserido a $mails_data<br>";
}
com este comando, a tabela mails vai ser consultada e vai retornar todos os registos ordenados alfabeticamente pelo endereço de email. Podem inserir no mesmo ficheiro para que devolva estes resultados sempre que inserirem um novo registo:
<?
if($gravar=='sim'){
$dbh=mysql_connect ("localhost", "root", "morpheus") or die ('Lamentamos, mas não é possivel ligar à base de dados porque: ' . mysql_error());
mysql_select_db ("teste");
$data = date("d/m/Y");
$query = "INSERT INTO mails (mails_nome,mails_mail,mails_data) VALUES ('$nome','$mail','$data')" or die (mysql_error());
$result = mysql_query($query) or die(mysql_error());
}
if($gravar=='sim'){
$query = "SELECT * FROM mails ORDER BY mails_mail";
$result = mysql_query($query) or die (mysql_error());
while ($row = mysql_fetch_array($result)){
extract($row);
echo"$mails_nome --> $mails_mail, inserido a $mails_data<br>";
}}
?>
<table border='0' width='250'>
<form method='POST' action='?gravar=sim'>
<tr>
<td width='64' align='center'>Nome</td>
<td><p align='center'><input type='text' name='nome' size='20'></td>
</tr>
<tr>
<td width='64' align='center'>Mail</td>
<td><p align='center'><input type='text' name='mail' size='20'></td>
</tr>
<tr>
<td width='64'> </td>
<td><p align='center'><input type='submit' value='inserir' name='botao'></td>
</tr>
</form>
</table>
Façam upload para o vosso servidor preferido (que suporte php
) e façam o teste!
Com isto, já têm bases para partir para algo mais complicado! por exemplo:
Quem me consegue dizer como faço para ordenar pelo nome?e como TPC
...
Q: Como é que posso por uma numeração sequencial na lista de consulta antes de cada mail? do estilo:
1 - mail_a@mail.com
2 - mail_b@mail.com
3 - mail_c@mail.com
Fica o desafio. Dúvidas? Postem à vontade!