filip_e Posted June 8, 2005 at 08:35 PM Report #557 Posted June 8, 2005 at 08:35 PM [Nota: este tutorial encontra-se obsoleto, e apresenta falhas de SQL injection. Os conteúdos relativos ao PHP devem ser ignorados.] Vamos começar aprender MySQL, mexer com Base de Dados (BD). Uma séries de artigos ensinando os comandos básicos de MySQL. Neste Artigo irei ensinar à conectar a um BD, e selecionar uma base de dados. Num programa PHP, para fazer a conexão com o banco de dados MySQL utilizamos a função mysql_connect(). Sua sintaxe é a seguinte: mysql_connect([servidor[:porta]],[usuário],[senha]); Para fazer, por exemplo, a conexão com a base de dados bdteste que possui como nome de utilizador teste, e como password teste2, executamos a seguinte atribuição: $conexao = mysql_connect("localhost","teste","teste2"); Se a base de dados estiver localizada num servidor diferente, basta substituir localhost pelo nome ou endereço de IP. Logo de seguida especificamos através do comando mysql_select_db() qual será a base de dados utilizada. mysql_select_db("bdteste"); Feito isso, estará aberta a conexão, e podemos manipular dados, através de inclusões, exclusões e alterações. Quando não for mais utilizar uma conexão aberta dentro de um programa, podemos fechá-la com o comando mysql_close(). Exenplo: mysql_close($conexao); Para não ter de repetir todos esses comandos em diversas páginas do site, seria interessante a criação de um include que faz conexão com a base de dados. Vamos criar este include: $conexao = mysql_connect("localhost","teste","teste2"); mysql_select_db("bdteste"); Agora basta colocar uma chamada para este include em todas as páginas que precisam ter acesso à base de dados. include "conexao.php"; Quando for necessário fazer alguma alteração no servidor, nome de utilizador, password ou no nome da base de dados, precisaremos alterar um único arquivo em vez de ter de alterar cada uma das páginas. Observação: lembre-se que no final de cada página devemos fechar a conexão que foi aberta dentro do include, por meio do comando mysql_close($conexao). Exibir Registros de Sua tabela do banco de Dados Não tem segredo... SELECT <lista_de_campos> FROM <lista_de_tabelas WHERE <condições> A sintaxe é bem fácil de decorar. Se <lista_de_campos> for substituída por um asterisco (*), serão devolvidos todos os campos existentes na(s) tabela(s) em uso. Se a cláusula WHERE for omitida, serão mostrados todos os registros das tabelas determinadas em <lista_de_tabelas>. Para completar este artigo, vamos ver uma forma básica de montar uma página HTML usando dados do MySQL. A tabela que utilizaremos é definida por: CREATE TABLE `pessoas` ( `nome` VARCHAR( 30 ) NOT NULL , `email` VARCHAR( 50 ) NOT NULL , `site` VARCHAR( 50 ) NOT NULL , `sexo` VARCHAR( 1 ) NOT NULL ); Crie esta tabela na base de dados. Depois crie uma página qualquer com este código: <?php //abre conexão com o mysql include "conexao.php"; $sql = mysql_query("SELECT * FROM pessoas"); // codigo sql que selecciona a tabela com os dados while($dados = mysql_fetch_array($sql)) { //exibe na tela os campos da tabela. echo $dados['nome']; echo"<br>"; echo $dados['email']; echo"<br><br>"; } //fechando a conexao com o mysql. mysql_close($conexao); ?> Neste exemplo eu coloquei o include da conexão com o MySQL, na outra linha tem o SELECT que eu expliquei, tem também o mysql_fetch_array() que coloca o resultado do SELECT num array, e com o while exibe na todo o conteúdo da array. while($dados = mysql_fetch_array($sql)) { } Se resolver exibir todas as pessoas de sexo Feminino por exemplo na terceira linha do código coloque isto: $sql = mysql_query("SELECT * FROM pessoas WHERE sexo = 'f'"); // codigo sql (F, na nossa tabela, representa sexo feminino.) Ordenando os resultados de uma consulta Para ordenar usamos o ORDER BY, se quiser ordenar por ordem alfabética o código ficaria assim: $sql = mysql_query("SELECT * FROM pessoas ORDER BY nome"); // codigo sql Também podemos fazer uma ordenação decrescente dos resultados, e para isso basta utilizar a opção DESC após o nome do campo, conforme é mostrado a seguir: $sql = mysql_query("SELECT * FROM pessoas ORDER BY nome DESC"); // codigo sql Determinando o número de linhas retornadas Utilizando a opção LIMIT, podemos determinar o número máximo de registros que uma consulta pode devolver. Se, por exemplo, um utilizador quiser ver os utilizadores do seu site, e houver mais de 500 utilizadores, obviamente não mostraria na tela todos os usuários, pois demoraria um bom tempo para a página ser carregada. Poderíamos então determinar que devem ser devolvidos no máximo 10 utilizadores (talvez os dez últimos) utilizando o seguinte comando: $sql = mysql_query("SELECT * FROM pessoas LIMIT 10"); // codigo sql Inserindo informações em um Banco de Dados Cada linha de uma tabela de banco de dados é chamada de registro. Para incluir um ou mais registros numa tabela, utilizamos o comando SQL INSERT. Veremos agora como funciona esse comando, para que posteriormente possa utilizá-lo nos seus programas PHP. Comandos INSERT O comando responsável por introduzir dados numa tabela. Existem duas variações para o comando INSERT: INSERT into <nome_tabela> values (valor1, valor2, ..., valorn); Insert into <nome tabela> (nome_campo1, nome_campo2, ..., nome_campon) values (valor1, valor2, ..., valorn); Na primeira variação, os valores digitados no lugar de valor1, valor2, ..., valorn serão incluídos na mesma ordem em que foram definidos os campos no momento da criação da tabela definida por <nome_tabela>. Portanto, se fossemos incluir um registro na tabela PESSOAS, o valor1 seria armazenado no campo nome, o valor2 seria armazenado no campo email, o valor3 seria armazenado no campo site, e assim por diante. Os campos criados com a cláusula NOT NULL devem ser obrigatoriamente preenchidos, caso contrário ocorrerá um erro na execução do comando INSERT. É importante lembrar que os valores numéricos não devem ser delimitados por aspas. Já os dados do tipo char, varchar, date e outros devem ser delimitados por aspas simples. Na segunda variação do comando INSERT, os valores valor1, valor2, ..., valorn serão inseridos nos campos campo1, campo2, ..., campon na tabela definida por <nome_tabela>. Os campos da tabela não listados receberão o valor NULL ou valor padrão (caso exista um). Se os campos não listados foram criados com a cláusula NOT NULL ocorrerá um erro na execução do comando INSERT. Vamos dar um exemplo prático: <?php //abre conexão com o mysql include "conexao.php"; //comando INSERT $sql = "INSERT into pessoas (nome, site, email, sexo) values ('kelvin', 'devmasters.net', 'devmasters@devmasters.net', 'M')"; mysql_query($sql); //executa a query //fecha a conexao com o mysql mysql_close($conexao); ?> Guarde este código como insert.php, coloque no seu servidor e execute o arquivo no navegador. Também pode interagir o INSERT com um formulário feito em HTML. Depois que o utilizador preenche todos os campos o formulário, envia para o arquivo insert.php e neste arquivo pega as variáveis POST ou GET digitadas no formulário. Não é muito complexo. Update Altera valores de uma ou mais linhas da tabela especificada. Sintaxe: UPDATE <nome_tabela> SET atribuicao1, ..., atribuicaon WHERE condicao Atenção: se a cláusula WHERE for omitida a atualização será feita para todos os registros. Agora vamos dar um exemplo fácil: <?php //abre conexão com o mysql include"conexao.php"; $sql = mysql_query("UPDATE pessoas SET email = 'Kllo@hotmail.com' WHERE nome = 'lix'"); mysql_query($sql); //executa a query //fechando a conexao com o MySQL. mysql_close($conexao); ?> Este código irá trocar o email do registro com o nome lix, e colocar o email Kllo@hotmail.com. Claro que outros campos podem ser editados, bastando para isso colocar mais atribuições no SET. Delete Exclui um ou mais registros da tabela da base de dados. Sua exclusão é definitiva não poderá mais recuperar o registro eliminado! Sintaxe: DELETE FROM <nome_tabela> WHERE condicao Atenção: se a cláusula WHERE for omitida serão eliminados todos os registros da tabela. lista.php <?php //abre conexão com o mysql include "conexao.php"; $sql = mysql_query("SELECT * FROM pessoas ORDER BY nome"); // codigo sql que seleciona a tabelas com os dados while($dados = mysql_fetch_array($sql)) { //cria uma variavel nome $nome = $dados['nome']; echo"<a href='deleta.php?nome=$nome'>$nome</a>"; echo"<br>"; } //fechando a conexao com o mysql. mysql_close($conexao); ?> deleta.php <? //abre conexão com o mysql include"conexao.php"; //define a variavel nome $nome = $_GET[nome]; //comando que exclui o registro $query = mysql_query("DELETE FROM pessoas WHERE nome = '$nome'"); echo"Registro excluido!"; //fechando a conexao com o mysql. mysql_close($conexao); ?> [Artigo no Wiki]
deathseeker25 Posted June 8, 2005 at 08:38 PM Report #560 Posted June 8, 2005 at 08:38 PM Boas, Continua com o tutorial que vais muito bem....estive a ler e achei interessante esta iniciativa... Cumps
melSpeedl.ine Posted June 8, 2005 at 09:15 PM Report #567 Posted June 8, 2005 at 09:15 PM aqui o nosso filip_e trabalha sempre a fundo aqui pó forum... Tás lá... e obrigado pelos excelentes tutoriais que post.. ;)
kraiser Posted June 8, 2005 at 09:29 PM Report #569 Posted June 8, 2005 at 09:29 PM Tá muito bom o tutorial 😄
satanuke Posted July 26, 2005 at 12:37 AM Report #2097 Posted July 26, 2005 at 12:37 AM Isto vai dar jeito para fazer o KISC em PHP, alinhas filip_e ?? tek.readers blog
Gurzi Posted July 26, 2005 at 02:18 AM Report #2106 Posted July 26, 2005 at 02:18 AM quando essa me*** fizer café DELTA pagas um café a cada um de nós 😄
aegypius Posted April 17, 2008 at 02:28 PM Report #179595 Posted April 17, 2008 at 02:28 PM Olá Não sou grande entendido na matéria mas estou a tentar. A minha questão tem a ver com os exemplos dados no início e que tentei adaptar á minha situação. Tenho um formulário onde introduzo os dados com várias opções de escolha. O que pretendo é mostrar esses dados. Julgo que deve ser simples, mas para mim é grande confusão. Pegando no exemplo adaptei da seguinte forma: <?php include"conexao.php"; $sgl = mysql_query("SELECT * FROM jos_chronoforms_1"); // codigo sgl que seleciona a tabela com os dados while($dados = mysql_fetch_array($sgl)) { //exibe na tela os campos da tabela. echo $Nome['Nome']; echo"<br>"; echo $ID['ID do Jogador']; echo"<br><br>"; } mysql_close($conexao); ?> O resultado é uma página em branco. Como faço para apresentar uma listagem dos dados inseridos no formulário. Desde já obrigado
aegypius Posted April 17, 2008 at 10:04 PM Report #179705 Posted April 17, 2008 at 10:04 PM já consegui.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now