Introdução ao PHP (com banco de dados)

Objetivo:
Este artigo foi escrito tendo em mente que o leitor já tem noções de programação e banco de dados, ou já é experiente mas não conhece o PHP. Sigo uma linha mais direta, visando evitar a aborrecida abordagem de TODAS as possíveis variáveis, tipos, tipos, controle-de-fluxo, etc. Para se aprofundar, basta pesquisar.
O que é o PHP:
O PHP é uma linguagem de script utilizada principalmente para a criação de sites e aplicativos web. Também é utilizado (menos largamente) na criação de scripts para serem utilizados na linha comando, a fim de facilitar e automatizar certas tarefas.
Para rodar scripts escritos em PHP é preciso apenas baixar os módulos e bibliotecas da linguagem. Nem é necessário “instalar” propriamente dito, porque é só descompactar e usar. Porém, para ter ele funcionando para os sites é preciso antes instalar um servidor web (leia-se Apache) e configurar o Apache para interpretar o PHP.
O segundo passo é instalar o MySQL e configurar o PHP para reconhecê-lo.
Como essa instalação e configuração toda foge do escopo deste artigo, recomendo (para quem ainda não tem o Apache, o PHP e o MySQL funcionando) instalar um AMP, que são pacotes já com esses três itens pré-configurados. Instale o XAMPP ou o EasyPHP, coloque o Apache e MySQL para rodar (os dois tem uma interface bem intuitiva para isso) e vamos lá.
Crie no diretório www ou htdocs do seu AMP um script chamado basico.php. O objetivo desse script é mostrar, numa lapada só, o mínimo necessário da sintaxe da linguagem.
Todo script, ou trecho de código PHP, deve ficar entre “”. O script vai declarar um array, varrer ele, testando se existe o elemento “inverno” e, se existir, vai concatenar ele com uma variável, que será exibida no final.

Objetivo:

Este artigo foi escrito tendo em mente que o leitor já tem noções de programação e banco de dados, ou já é experiente mas não conhece o PHP. Sigo uma linha mais direta, visando evitar a aborrecida abordagem de TODAS as possíveis variáveis, tipos, controle-de-fluxo, etc. Para se aprofundar, basta pesquisar.

O que é o PHP:

O PHP é uma linguagem de script utilizada principalmente para a criação de sites e aplicativos web. Também é utilizado (menos largamente) na criação de scripts para serem utilizados na linha comando, a fim de facilitar e automatizar certas tarefas.

O que é necessário para fazê-lo funcionar:

Para rodar scripts escritos em PHP é preciso apenas baixar os módulos e bibliotecas da linguagem. Nem é necessário “instalar” propriamente dito, porque é só descompactar e usar. Porém, para ter ele funcionando para os sites é preciso antes instalar um servidor web (leia-se Apache) e configurar o Apache para interpretar o PHP.

O segundo passo é instalar o MySQL e configurar o PHP para reconhecê-lo.

Como essa instalação e configuração toda foge do escopo deste artigo, recomendo (para quem ainda não tem o Apache, o PHP e o MySQL funcionando) instalar um AMP (Apache-MySQL-PHP), que são pacotes já com esses três itens pré-configurados. Instale o XAMPP ou o EasyPHP, coloque o Apache e MySQL para rodar (os dois tem uma interface bem intuitiva para isso) e vamos lá.

Crie no diretório www ou htdocs (ele fica dentro do diretório onde você instalou o AMP) um script chamado basico.php. O objetivo desse script é mostrar, numa lapada só, o mínimo necessário da sintaxe da linguagem.

Todo script, ou trecho de código PHP, deve ficar entre “<?php” e “?>“. O script vai declarar um array, varrer ele, testando se existe o elemento “inverno” e, se existir, vai concatenar ele com uma variável, que será exibida no final.

basico.php

<?php
	$resultado = 'Estamos no ';
	/*
	- O tipo dessa variável "$resultado" é automaticamente setado como string, porque ela recebeu um valor desse tipo. Um inteiro seria $contador = 1000 e um float seria $pagar = 75.25
	*/

	$aEstacoes = array('idx01' => 'Verão', 'idx02' => 'Outono', 'idx03' => 'Inverno', 'idx04' => 'Primavera');
	/*
	- Pode-se omitir o índice. Ex: array('Verão','Inverno'). Nesse caso cada elemento receberá um índice numérico, começando do zero.
	- O array mode ter quantas dimensões precisar: ex: array(0 => array('nome' => 'Lawrence', 'email' => 'llagerlof@gmail.com'), 1 => array('nome' => 'Angélica', 'email' => 'angelica.lagerlof@gmail.com'))
	- Uma observação: eu costumo iniciar as variáveis do tipo "array" com "a", para identificá-la melhor visualmente.
	*/

	foreach ($aEstacoes as $key => $value) {
		if ($value == 'Inverno') {
			$resultado .= $value;
		}
	}
	/*
	- A linha do "if" poderia ser substituída por: if ($aEstacoes[$key] == 'Inverno') {
	- A linha do "$resultado" é o mesmo que: $resultado = $resultado . $value;
	- Já percebeu que comparação é feito com "==" e atribuição com "=", certo?
	*/

	if (strpos($resultado,'Inverno') === false) {
		echo 'Não existe a palavra Inverno na lista.';
	} else {
		echo $resultado;
	}
	/*
	- No PHP, zero equivale a falso. O problema é que TAMBÉM existe o tipo boolean FALSE. A função strpos que usei pra testar se existe a palavra "Inverno" dentro da string "$resultado" retorna a posição da palavra no $resultado, só que se "Inverno" estiver no início da string a função retorna ZERO, que é a primeira posição. Logo, se eu testar se zero é igual (==) a false, vai dar TRUE na comparação. Nos casos em que você precisar diferenciar zero de FALSE, use "===".
	- "echo" joga a string para a saída padrão (o terminal, o navegador, etc). Poderia ser "print" no lugar de "echo".
	*/
?>

Teste o código acessando o endereço do seu servidor local: http://localhost/basico.php

Conectando, inserindo e acessando dados no banco

Já dá para começar a ficar sério. Vamos criar um cadastro com HTML e PHP. Crie um arquivo cadastro.php e insere.php

cadastro.php

<html>
	<body>
		<form name="form1" method="post" action="insere.php">
			Nome: <input type="text" name="nome"><br>
			Idade: <input type"text" name="idade"><br>
			<input type="submit" value="Enviar">
		</form>
	</body>
</html>

Quando o usuário clicar no botão Enviar, será criado no script insere.php um array $_POST, com o nome e a idade digitados.
Vamos ver agora como manipular essas variáveis e, de quebra, inserir o indivíduo na tabela “pessoas” do banco de dados “BANCO1“.

Para facilitar, segue abaixo o “create” da tabela “pessoas”. Se precisar, leia como criar um banco no MySQL.

create table pessoas (id integer not null primary key auto_increment, nome varchar(50) not null unique, idade integer);

insere.php

<?php
	$n = $_POST['nome'];
	$i = $_POST['idade'];

	$conexao = mysql_pconnect("localhost","root","");
	// localhost = servidor do mysql.
	// root = usuário do mysql com permissão para acessar o banco.
	// "" = senha do banco de dados para o usuário root. O meu MySQL local está sem senha, por isso deixei vazio.

	$bd = mysql_select_db("BANCO1");

	$sql = "insert into pessoas (nome, idade) values ('$n',$i)";
	/* Você pode colocar variáveis diretamente dentro de strings definidas com aspas duplas. Elas serão "traduzidas" para seus respectivos valores. */

	$query1 = mysql_query($sql);
	/* mysql_query()  Executa a query. Nesse momento a pessoa é inserida no banco de dados. Agora não tem mais volta. */

	// Aproveitando a deixa, logo após a inserção, vamos listar todas as pessoas da tabela.

	$query2 = mysql_query("select * from pessoas");

	while ($registro = mysql_fetch_array($query2)) {
		echo 'Id: ' . $registro['id'] . '<br>';
		echo 'Nome: ' . $registro['nome'] . '<br>';
		echo 'Idade: '  . $registro['idade'] . '<br>';
		echo '-------------------------------<br>';
	}

	mysql_close($conexao);

	/*
	Para quem já programa, o código é auto-explicativo. Apenas algumas observações:
		-  mysql_pconnect() cria uma conexão persistente com o servidor do MySQL, o seu computador neste caso. Se não quiser uma conexão persistente, use mysql_connect().
		- mysql_select_db() seleciona o banco em que será executado os SQLs posteriores.
	*/
?>


Teste o código acessando o endereço do seu servidor local: http://localhost/cadastro.php
Maravilha! Temos um cadastro e uma consulta funcionando. Agora você já sabe o necessário para começar a criar sites com bancos de dados. Lembre-se, no final, tudo se resume a cadastros e consultas ao banco de dados.

Dica bônus 1:

Quando os dados são passados através de um formulário você recupera os valores através do array $_POST. Quando você passar variáveis através da URL, recupere-as pelo array $_GET. Por exemplo, se você acessar pelo navegador http://localhost/insere.php?nome=Lawrence&idade=20 , essas duas variáveis vão chegar no script insere.php, só que você deve acessá-las lendo os valores de $_GET[‘nome’] e $_GET[‘idade’] .

Dica bônus 2

Você pode inserir scripts dentro do código html. Veja o exemplo:

<html>
	<body>
		<p>Este parágrafo está fixo no HTML.</p>
		<?php
			echo '<p>Este parágrafo está sendo gerado dinamicamente pelo PHP.</p>';
		?>
	</body>
</html>

Consulte também:

  • A documentação oficial do PHP. É uma das melhores existentes. Bem explicado e com muitos exemplos.
  • PHP Brasil. É o maior portal de PHP do Brasil. Muitos scripts, artigos e tutoriais.
  • Smarty. Uma biblioteca que permite você criar suas páginas usando PHP e HTML em arquivos separados, evitando assim a bagunça que inevitavelmente acontece quando é utilizado a “Dica bônus 2”. Aqui você começa ficar profissional.
  • MVC (Model View Controller). É a coqueluche atual da programação orientada a objetos. Se quiser sair na frente, caia de cabeça no modelo de desenvolvimento MVC. Aprenda a trabalhar com o Zend Framework, o CakePHP ou o CodeIgniter. É isso que as empresas que trabalham com PHP estão usando hoje em dia.

8 comentários em “Introdução ao PHP (com banco de dados)”

  1. Não estou conseguindo fazer essa comparação do meu form com o banco de dados alguem pode me ajudar ?

    <?php
    $nome1 = $_GET["nome1"];
    $senha1 – $_GET["senha1"];
    include "conectabdnm.php";
    mysql_query ("SELECT * FROM usuario WHERE values (null,'ID''$nome','$senha')", $conexao) or die (mysql_error());

    if( $nome == $nome1 and $senha == $senha1){
    Echo "Bem Vindo Ao Nosso Site !";
    Echo "Esperamos que Goste do Nosso Conteúdo !";

    echo "”;
    }
    else {
    echo “”;
    }
    ?>

    1. Vikeddu,

      esse código tem alguns problemas. Segue abaixo a minha análise. Abraço.

      <?php

      $nome1 = $_GET["nome1"];
      $senha1 = $_GET["senha1"]; // Erro1: tinha um "menos" no lugar de "igual".

      include "conectabdnm.php";

      mysql_query ("SELECT * FROM usuario WHERE values (null,’ID”$nome’,’$senha’)", $conexao) or die (mysql_error());
      // Erro2: mysql_query deve retornar o resultado para uma variável. Ex: $result = mysql_query(…
      // Erro 3: O SELECT está com a syntaxe incorreta. O correto seria: SELECT * FROM usuario WHERE nome = ‘$nome1’ and senha = ‘$senha1’

      // Erro 4: Faltou pegar os valores dos campos NOME e SENHA do resultado
      while ($linha = mysql_fetch_assoc($result)) {
      $nome = $linha[‘nome’];
      $senha = $linha[‘senha’];
      }

      // Erro 5: coloque as comparações sempre entre parênteses. Use && para AND e || para OR
      if( ($nome == $nome1) && ($senha == $senha1) ) {
      Echo "Bem Vindo Ao Nosso Site !";
      Echo "Esperamos que Goste do Nosso Conteúdo !";
      echo "";
      }
      else {
      echo "";
      }

      ?>

      Também postei ele no codepad: http://codepad.org/PXSwrbuO

Deixe um comentário