segunda-feira, 20 de fevereiro de 2017

INSERINDO DADOS NO BANCO

INSERINDO DADOS NO BANCO

Atenção: espaços foram colocados depois do < das tags para não serem interpretados pelo blogger. Cuidado ao copiar o código, não tem espaço depois da abertura da tag.

Para exemplificar criaremos um formulário de cadastro de usuários e uma tabela no banco para guardar esses dados:

< form action="salva/salva_usuario.PHP" method="POST" name="caduser"> < /form>
< label>Nome:< /label>
*< input name="nome" size="40" type="text" />
< label>Email ou nome de usuario:< /label>
< input name="email" size="25" type="text" />
< label>Senha:
< input name="senha" size="10" type="password" />
< input type="submit" value="Cadastrar" />
< input type="reset" value="Limpar" />
< input name="cancela" onclick="window.location.href='painel.PHP'" type="button" value="Cancelar" />
*Atributos mínimos. Inclua a seu conhecimento de html outros atributos.
Alguns comentários:
method="POST": temos dois metodos de fazer o envio dos dados do formulários dentro do PHP. GET ou POST. Para mais detalhes sobre um ou outro pesquise sobre o assunto. Por enquanto guarde a ideia que como POST os dados são enviados sem estar visíveis na url de redirecionamento da página.
action="salva/salva_usuario.PHP": para qual pagina os dados do formulário serão enviados. Pode ser para a mesma página ou para outra como no exemplo onde vamos chamar outra página salva_usuario.PHP.

Enviamos então nome, e-mail e senha através do atributo “name” para outra página pelo POST e agora na nova página vamos recepcionar esses dados e criar variáveis que guardarão essas informações.

#manda ler o arquivo de conexão do banco
include "conecta_banco.php";
#Recolhe através da variável superglobal $_POST os dados do formulário do atributo “name” “nome”, e-mail” e “senha”.
$nome=$_POST['nome'];
$email=$_POST['email'];
$senha=$_POST['senha'];
# uma variavel com nome qualquer (nesse caso $sql) e através do mysql_query inserimos o SQL para gravar os dados.
$sql = @mysql_query("INSERT INTO users(nome, admin, email, senha, situacao)
VALUES('$nome', 'Não', '$email', MD5('$senha'), 0)");
echo "Cadastro efetuado com sucesso!";
?>
Inserir em tabela de nome users nos campos: nome, admin, e-mail, senha e situação os VALUES(valores) das variáveis que armazenaram os dados do formulário.
Obs1: Note que nem todos os dados precisam vir de variáveis. Quando inicialmente queremos passar um valor padrão podemos declarar direto nos valores do INSERT. Nesse exemplo, em vez de perguntar no formulário se o novo usuário seria administrador, inserimos um valor padrão ‘Não’ e um administrador no futuro decide se esse usuário será administrador ou não.
Obs2: poderia ser declarada uma variável acima, mesmo que os dados não proviessem de um formulário, nesse caso, por exemplo: $admin=‘não’, $situação=0. O desenvolvedor pode escolher sua forma de trabalhar. (se valor da variável for texto escreva dentro de aspas simples e se for numérico sem aspas).
Obs3: O que faz esse @? Na verdade o PHP evoluiu para mysqli, a arroba é um truque que contorna esse problema em algumas funções nas atuais versões do PHP. Porém, se você for iniciante recomenda-se se habituar ao mysqli.
Obs4: Para tranquilizar o usuário devolvemos uma mensagem de que tudo foi realizado com sucesso através do “echo”. Cadastro efetuado com sucesso!". De fato, se tudo ocorreu bem no sql e o sistema não retornar outro erro, a execução chegou ao “echo” há de se supor que tudo ocorreu bem. Não é de todo confiável, mas por hora vamos acreditar que se a mensagem vier à tela, tudo foi bem.
Obs5: A certeza que os dados foram gravados se dará consultando a base de dados. A partir do momento, que executado vários testes sempre se repete a gravação no banco, podemos ter confiança que a instrução está correta.
Obs6.: MD5('$senha'). MD5 é uma forma de criptografar senhas. Dessa forma, ao ler a tabela ninguém sabe qual a senha real do usuário. Comentaremos mais adiante sobre isso.

Agora chegou a hora de criar a tabela no nosso banco. Para demonstrar usaremos o banco criado de nome loja. Veja que ao clicar no sinal de + do banco temos uma opção new para chamar a tela de criação de uma tabela. Oferecemos um nome para a tabela, e opcionalmente quantas colunas terá essa tabela. Não se preocupe, pois inserir novas colunas podem ser feitas depois.


Após executar, insira pelo menos o nome da coluna, tipo de dados, tamanho, colação se for tipo texto, e para um deles, geralmente o primeiro que seja de índice primário e marque A.I. (autoincremento).

Para nosso formulário e para nosso sql funcionar e os dados ficarem gravados em uma tabela de um banco precisamos criar uma coluna com identificador nesse caso id, tipo INT, tamanho 4 (comportará até 9999 usuários), índice primário e autoincremento para não precisarmos inserir dados nesta coluna, o banco cria sequencialmente o próximo ID. Nomes que usamos no INSERTO TO nome, admin, e-mail, senha.


Obs.: após clicar em guardar os dados a tabela será criada e listada na barra esquerda.
Na barra superior, quando clicamos sobre o nome da tabela, o ícone procurar listará alguns campos já lançados. O caminho estrutura usa-se para incluir/alterar as colunas da tabela. Mais adiante iremos ver outras funções.


Após isso, rode o arquivo no navegador e verifique no phpmydmin se os dados estão sendo gravados na tabela. Importante, clique em Procurar para dar uma recarregada na tela.


Se tudo estiver dado certo, terás a primeira inserção no banco. Parabéns. Caso contrário reveja os códigos, se os nomes das variáveis estão certo, os nomes no sql e nas colunas da tabela.

Nenhum comentário: