Lida 50730 vezes
Bem aqui fica um tutorial que já fiz há algum tempo..não sei se já alguém postou algo do género mas fica por cá..(peço desculpa pelo tamanho e má qualidade das imagens)Vamos ter aqui uma pequena "aula" de conecção MySQL com PHP. Todas as dúvidas poderão ser tiradas neste tópico..- Criar uma Base de Dados MySQL (a partir do PhpMyAdmin):Para criar uma Base de Dados MySQL a partir do PhpMyAdmin basta colocar o nome no campo de inserção e clicar em "Criar", tal como na figura abaixo. Neste tutorial iremos utilizar a Base de Dados "tutorial".Agora basta selecionar no Drop Down menu a Base de Dados que criámos, neste caso "tutorial".- Criar uma Tabela em uma Base de Dados MySQL (a partir do PhpMyAdmin):Bem, para ter a nossa tabela selecionada (passo anterior) para podermos escolher a opção "SQL" como mostra a figura abaixo.Depois de termos clicado na opção "SQL" vamos inserir no campo o nosso código para criarmos a tabela e os respectivos campos. Aqui nós vamos ter a tabela "tutorial" com os campos "id", "nome", "idade" e "email". Será como um formulário de registo.Aqui coloquei o seguinte código:Código: [Seleccione]CREATE TABLE tutorial (id int(5) NOT NULL auto_increment,nome char(30) NOT NULL ,idade char(3) NOT NULL ,email char(80) ,PRIMARY KEY (id),UNIQUE id (id));Explicando:CREATE TABLE tutorial, aqui estamos a dizer ao MySQL que queremos criar a tabela tutorial depois abrimos parenteses "(" e dizemos o que está dentro dessa tabela.id, é o id de cada "registo" por exemplo, não é obrigatório inserir. Está com auto_increment, o que quer dizer que é inserido automáticamente e por ordem.nome, é o nome da pessoa, temos um char(30) o que quer dizer que o limite do nome é de 30 caracteres e temos um NOT NULL que quer dizer que não pode ser nulo.idade, é a idade da pessoa, desta vez temos um char(3) que significa que tem um limite de 3 caracteres, para uma idade claro! Também tem NOT NULL que significa o mesmo que o campo anterior.email, é o email da pessoa, tem char(80), ou seja, limite de 80 carecteres. Desta vez não tem NOT NULL o que significa que poderá ficar em branco. Fica à escolha de cada um a criação dos campos.PRIMARY KEY (id), aqui estamos a dizer que o primeiro campo é o id, é sempre necessário quando se usam id's.UNIQUE id (id), aqui estamos a dizer que o campo id terá que ser único.); <- Aqui estamos a fechar o parentese previamente aberto e a dizer que terminámos com o ";".Se o código estiver todo correcto vamos obter o seguinte:Então se quiserem ver como ficou podem clicar na tabela criada.Deverá ficar com este aspecto depois de clicar na tabela criada.OK! Temos a nossa Base de Dados e a nossa Tabela MySQL prontinhas! Vamos ao PHP!- Inserir dados na Base de Dados a partir de um formulário em PHP:Para inserir dados a partir de um formulário temos que ter a action do formulário direcionada para o ficheiro PHP que contém isto, por exemplo (as explicações estão junto ao código):Código: [Seleccione]<?php//Abaixo vamos criar uma variável com o seguinte para inserir os dados//Como devem reparar não temos a variável id presente, pois não é necessário por estar em auto_increment//Passando a explicar..temos o principal código INSERT INTO tutorial que está a dizer que vamos inserir na tabela tutorial os seguintes dados dentro das variáveis da MySQL. Depois em VALUES temos as variáveis que vieram do nosso formulário..$sql = "INSERT INTO tutorial (nome, idade, email) VALUES ('$nome', '$idade', '$email')";//Agora é hora de contactar o MySQL para entrar na Base de dados//Como estamos num exemplo prático, vou colocar os valores menos a password, sabem que terão que modificar$conexao = mysql_connect("localhost", "tutorial", "password") or die ("Dados da Base de Dados incorrectos!");$db = mysql_select_db("tutorial") or die ("Base de Dados não existente!");//Agora o comando final, o que vai finalmente inserir todos os dados recolhidos pelo formulário e enviar para o MySQL nos respectivos campos anteriormente criados..$sql = mysql_query($sql) or die ("Existe erros na gravação dos dados!");//Se tudo correr bem podemos definir um echo..mas isto não é obrigatório!echo "Todos os Dados foram gravados com sucesso na Base de Dados!";?>Está pronto, muito fácil não vos parece?!- Remover dados a partir dum..campo num formulário (Por exemplo se escrevermos "SIM" no campo:Código: [Seleccione]<?php//Supondo que temos um campo em um formulário em que temos que colocar "SIM" para remover o utilizador ou seja o que for previamente definido por nós em um link por exemplo. (membros.php?id=2232)if ($remover == SIM) {$conexao = mysql_connect("localhost","tutorial","password");$db = mysql_select_db("tutorial");$sql = "DELETE FROM tutorial WHERE id='2232'";$resultado = mysql_query($sql)or die ("Não foi possível realizar a exclusão dos dados.");echo "Membro removido com sucesso!";}?>- Alterar dados a partir de um outro formulário em que já temos a exibição dos mesmo em campos alteráveis:Código: [Seleccione]<?php//Tendo em conta que temos a exibição das variaveis gravadas no MySQL dentro de campos input text alteráveis e depois direcionamos a action deste formulário para este ficheiro.. (atenção que o nome das variáveis do formulário terão que ser diferentes do formulário principal, como nome_novo, email_novo, idade_nova...etc...)//Vamos acabar por ficar com o que estiver dentro dos campos input text$conexao = mysql_connect("localhost","tutorial","password");$db = mysql_select_db("tutorial");$sql = "UPDATE tutorial SET nome='$nome_novo',idade='$idade_nova',email='$email_novo'";$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta à Base de Dados!");echo "Dados Alterados com Sucesso!";?>- Exibir os dados que estão gravados na Base de Dados:Aqui terá que ser um ficheiro PHP completamente, claro.Código: [Seleccione]<?php//Vamos precisar conectar o MySQL novamente$conexao = mysql_connect("localhost","tutorial","password");$db = mysql_select_db("tutorial");//Agora é realizar a query de busca na Base de Dados//Vamos usar o SELECT * FROM tutorial para selecionar da tabela tutorial e não de outra qualquer e vamos utilizar ORDER BY id DESC para termos os utilizadores por exemplo, ordenados por id, com ordem descendente..$sql = "SELECT * FROM tutorial ORDER BY id DESC";//Agora ele vai fazer tudo o que está dentro da variável...$resultado = mysql_query($sql)or die ("Não foi possível realizar a consulta à Base de Dados!");// Agora iremos "pegar" cada campo do utilizador neste caso e organizar o HTMLwhile ($linha=mysql_fetch_array($resultado)) {$id = $linha["id"];$nome = $linha["nome"];$idade = $linha["idade"];$email = $linha["email"];//Usaremos um echo ou vários para mostrar uma tabela com os dados!echo "<table width='200' border='0'> <tr> <td>$id</td> <td>$nome</td> <td>$idade</td> <td>$email</td> </tr></table>";}?>DICA: Para ter em exibição uma variável dentro de um campo input text em um formulário temos que ter o seguinte (apenas para conecções com MySQL, NÃO FUNCIONA com hidden input text nem variáveis de links, para tal tem que ser de outra maneira):1 - Selecionamos a Base de Dados e de seguida selecionamos a variável com os dados que queremos.2 - No código fonte do input text respectivo colocamos o seguinte, como no exemplo:Código: [Seleccione]<input type=text value="<?=$nome?>" name="nome" id="nome">3 - Caso não queiram que o campo possa ser editado basta adicionar um "readonly" ficando:Código: [Seleccione]<input type=text value="<?=$nome?>" name="nome" id="nome" readonly>Espero que tenham aprendido algo, não coloquei os sources dos formulários porque, para quem quer utilizar PHP e MySQL tem que pelo menos saber utilizar PHP e HTML como deve ser, isto não é um tutorial para PRINCIPIANTES! Fica o aviso!Qualquer dúvida pode ser colocada aqui!Todo este tutorial foi elaborado por mim, OFFICER. Caso queiras colocá-lo em algum lado respeita os créditos.
CREATE TABLE tutorial (id int(5) NOT NULL auto_increment,nome char(30) NOT NULL ,idade char(3) NOT NULL ,email char(80) ,PRIMARY KEY (id),UNIQUE id (id));
<?php//Abaixo vamos criar uma variável com o seguinte para inserir os dados//Como devem reparar não temos a variável id presente, pois não é necessário por estar em auto_increment//Passando a explicar..temos o principal código INSERT INTO tutorial que está a dizer que vamos inserir na tabela tutorial os seguintes dados dentro das variáveis da MySQL. Depois em VALUES temos as variáveis que vieram do nosso formulário..$sql = "INSERT INTO tutorial (nome, idade, email) VALUES ('$nome', '$idade', '$email')";//Agora é hora de contactar o MySQL para entrar na Base de dados//Como estamos num exemplo prático, vou colocar os valores menos a password, sabem que terão que modificar$conexao = mysql_connect("localhost", "tutorial", "password") or die ("Dados da Base de Dados incorrectos!");$db = mysql_select_db("tutorial") or die ("Base de Dados não existente!");//Agora o comando final, o que vai finalmente inserir todos os dados recolhidos pelo formulário e enviar para o MySQL nos respectivos campos anteriormente criados..$sql = mysql_query($sql) or die ("Existe erros na gravação dos dados!");//Se tudo correr bem podemos definir um echo..mas isto não é obrigatório!echo "Todos os Dados foram gravados com sucesso na Base de Dados!";?>
<?php//Supondo que temos um campo em um formulário em que temos que colocar "SIM" para remover o utilizador ou seja o que for previamente definido por nós em um link por exemplo. (membros.php?id=2232)if ($remover == SIM) {$conexao = mysql_connect("localhost","tutorial","password");$db = mysql_select_db("tutorial");$sql = "DELETE FROM tutorial WHERE id='2232'";$resultado = mysql_query($sql)or die ("Não foi possível realizar a exclusão dos dados.");echo "Membro removido com sucesso!";}?>
<?php//Tendo em conta que temos a exibição das variaveis gravadas no MySQL dentro de campos input text alteráveis e depois direcionamos a action deste formulário para este ficheiro.. (atenção que o nome das variáveis do formulário terão que ser diferentes do formulário principal, como nome_novo, email_novo, idade_nova...etc...)//Vamos acabar por ficar com o que estiver dentro dos campos input text$conexao = mysql_connect("localhost","tutorial","password");$db = mysql_select_db("tutorial");$sql = "UPDATE tutorial SET nome='$nome_novo',idade='$idade_nova',email='$email_novo'";$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta à Base de Dados!");echo "Dados Alterados com Sucesso!";?>
<?php//Vamos precisar conectar o MySQL novamente$conexao = mysql_connect("localhost","tutorial","password");$db = mysql_select_db("tutorial");//Agora é realizar a query de busca na Base de Dados//Vamos usar o SELECT * FROM tutorial para selecionar da tabela tutorial e não de outra qualquer e vamos utilizar ORDER BY id DESC para termos os utilizadores por exemplo, ordenados por id, com ordem descendente..$sql = "SELECT * FROM tutorial ORDER BY id DESC";//Agora ele vai fazer tudo o que está dentro da variável...$resultado = mysql_query($sql)or die ("Não foi possível realizar a consulta à Base de Dados!");// Agora iremos "pegar" cada campo do utilizador neste caso e organizar o HTMLwhile ($linha=mysql_fetch_array($resultado)) {$id = $linha["id"];$nome = $linha["nome"];$idade = $linha["idade"];$email = $linha["email"];//Usaremos um echo ou vários para mostrar uma tabela com os dados!echo "<table width='200' border='0'> <tr> <td>$id</td> <td>$nome</td> <td>$idade</td> <td>$email</td> </tr></table>";}?>
<input type=text value="<?=$nome?>" name="nome" id="nome">
<input type=text value="<?=$nome?>" name="nome" id="nome" readonly>
Como faço se quiser buscar dados de outra tabela no mesmo comando sql?SELECT COUNT( file_id )FROM phcdl_filesWHERE file_author = session_name (este é da tal outra tabela)
SELECT COUNT(file_id)FROM phcdl_files, outra_tabelaWHERE file_author = session_name
<?php $ficheiros = mysql_query("SELECT COUNT(file_id) FROM phcdl_files, phcdl_sessions WHERE file_author = . $kernel->session->vars['session_user_id']");echo $ficheiros;?>
Desenvolvimento
Hosting