Gerenciador de Contatos, o retorno…

5 11 2008

Salve ilustríssimos visitantes, cá estou eu de volta :D . Gostaria de informar que o projeto que e iniciei aqui (o Gerenciador de Contatos) está de volta :D .

Vamos começar ele do zero, pois após eu fazer uma análise, cheguei a conclusão que aquelas rotinas estavam mal estruturadas (é, é chato assumir isso, maaaas, é preciso, e eu peço desculpas por isso), vamos agora desenvolver as rotinas da forma mais genérica possível, possibilitando assim outras pessoas utilizarem o código e adaptarem com mais facilidade às suas necessidades ;) .

Então, a primeira parte do projeto, eu vou postar dentre alguns dias, aguardem :D .

Aaaaahh! Gostaria de lembrar que esse é um projeto OpenSource, ou seja, você é livre para copiar, editar e distribuir, bem como ajudar no desenvolvimento (caso queira, basta comentar esse post, deixando algum meio de contato).

Até o próximo,
Simonarde Jr.

Blogged with the Flock Browser




Gerenciador de Contatos v1.0 [parte 2]

25 04 2008

Opa opa! Cá estamos de volta, com a segunda parte do Artigo Gerenciador de Contatos, dessa vez iremos desenvolver a página principal, ou “index.php”, vamos lá?

Com o seu editor preferido aberto, digite as linhas responsáveis por carregar o arquivo de funções (aquele que você desenvolveu no post anterior, lembra?):

<?php
  require_once("funcoes.php");
?>

Pronto, agora você poderá usar todas as funções no seu projeto :D , é importante lembrar que o arquivo “funcoes.php” deverá estar no mesmo diretório que o “index.php”, ou então será necessário informar o caminho ao require_once.

Agora vamos ao HTML básico, digite as linhas a seguir:

<html>
 <head>
  <title>Gerenciador de Contatos v1.0</title>
 </head>

 <body>

 </body>
</html>

Pronto, com essa estrutura básica, você deverá ter uma página sem nada escrito, apenas com o título da página mostrando “Gerenciador de Contatos v1.0″.

Vamos incrementar um pouco e adicionar um título para que possamos informar ao usuário do que se trata a página que ele está vendo no momento, adicione dentro da tag “body”:

<h1>Gerenciador de Contatos v1.0</h1><hr>

Essas linhas devem criar um título e uma linha horizontal.

Bom, como você quer listar os contatos na sua página principal, vamos utilizar agora a função Listar() que desenvolvemos no post anterior, para isso, digite a linha a seguir logo após a tag “hr”:

<?php Listar(); ?>

Agora insira mais uma linha horizontal digitando a tag “hr”, poderemos também inserir algumas informações no rodapé, tais como o Copyleft ou um link, sua imaginação é o limite aqui ;) :

<hr>
Copyleft Simonarde Jr.
Desenvolvido para o artigo Gerenciador de contatos em http://simonardejr.wordpress.com

Bom, com isso sua página principal está pronta e deve se parecer com esse código abaixo:

<?php

 require_once("funcoes.php");

?>

<html>
 <head>
  <title>Gerenciador de Contatos v1.0</title>
 </head>

 <body>
  <h1>Gerenciador de Contatos v1.0</h1>
  <hr>
  <?php
   Listar();
  ?>
  <hr>
  <center>Desenvolvido por Simonarde Jr.<br/>
  Para o Artigo "Gerenciador de Contatos v1.0" em <a href="http://simonardejr.wordpress.com/" target="_blank">zWorld</a>.</center>
 </body>

</html>

No próximo post iremos desenvolver a página de cadastro (“adicionar.php”). Até lá.

Simonarde Jr.





Gerenciador de Contatos v1.0 [parte 1]

21 04 2008

Salve salve meus ilustríssimos visitantes, cá estou de volta e, como prometido, trazendo o Artigo sobre o Gerenciador de Contatos. Gostaria de lembrar-vos que esse projeto é OpenSource, ou seja, você poderá usar, modificar e é totalmente encorajado a distribuir essa versão (ou a editada) desde que seja mantido os devidos créditos. Aliás, esse é o meu primeiro projeto OpenSource, espero que gostem ;)

Bom, então vamos digitar código né??

Crie o BD e a tabela com o seguinte script SQL:

CREATE DATABASE gerenciador;
 USE gerenciador;

CREATE TABLE IF NOT EXISTS contatos (
  ID int(5) NOT NULL auto_increment,
  nome varchar(255) NOT NULL,
  telefone varchar(255) NOT NULL,
  celular varchar(255) NOT NULL,
  email varchar(255) NOT NULL,
 UNIQUE KEY ID (ID) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Começaremos por um arquivo chamado “funcoes.php”, onde serão escritas todas as funções do aplicativo, facilitando assim a manutenção e poluindo menos as páginas :D . Abra então seu editor preferido e comece abrindo a tag PHP: <?php .

A primeira função será a que facilitará a conexão com o MySQL:

function Conectar( $user, $password, $local="localhost" ) {
  $conexao = @mysql_connect( $local, $user, $password ) or die( "Erro: ".mysql_error() );
  if ( $conexao ) { $bd = @mysql_select_db( "gerenciador" ) or die( "Erro: ".mysql_error() ); }
}

Veja que passamos 3 parâmetros para ela, sendo dois obrigatórios ($user e $password) e um opcional ($local, que se não for passado recebe o valor “localhost”). Fazemos então a conexão e testamos se ela foi realizada com sucesso, se sim, ele escolhe o banco “gerenciador” para o uso. Pode parecer uma função simples, mas realmente é muito útil pois toda vez que precisar realizar uma conexão tudo o que precisa digitar é Conectar(“user”, “senha”);.

Vamos então agora a função Listar();

function Listar() {
  Conectar("user", "senha"); //Passe seu user e senha como parametros.
  $query_lista = "SELECT * FROM contatos ORDER BY nome ASC";
  $resultado = @mysql_query($query_lista) or die("Erro: ".mysql_error());
  if ($resultado) {
   $total = mysql_num_rows($resultado);
   if (mysql_num_rows($resultado) != 0) {
    echo "<table border=\"0\"><tr bgcolor=\"#ff2200\"><td>Nome</td><td>Telefone</td><td>Celular</td><td>E-mail</td><td>Opções</td></tr>";
    while ($linha = mysql_fetch_array($resultado)) {
     if ($i % 2 == 0) { $cor = ""; }
     else { $cor = "#EEEEEE"; }
     echo "<tr bgcolor=\"".$cor."\"><td>".$linha["nome"]."</td><td>".$linha["telefone"]."</td><td>".$linha["celular"]."</td><td>".$linha["email"]."</td><td><a href=\"editar.php?ID=".$linha["ID"]."\">Editar</a> | <a href=\"deletar.php?ID=".$linha["ID"]."\">Deletar</a></td></tr>";
     $i++;
    }
    echo "</table><br/><br/>";
   }
   echo "Você possui ".$total." contatos cadastrados. Deseja <a href=\"adicionar.php\"> adicionar</a> outro?";
  }
}

Essa função realiza a consulta no banco de dados e nos mostra os resultados numa tabela zebrada (ou seja, sempre que precisar listar todos os contatos, basta digitar Listar();, mais simples impossível não é mesmo? ;) ). Ela possui também um contador, onde é possível ver quantos registros você possui.

Que tal escrevermos a função Adicionar()? Vamos lá então ;)

function Adicionar($nome, $telefone, $celular, $email) {
  Conectar("user", "senha"); //Passe seu user e sua senha como parametros.
  if ( $nome == "" ) { $nome = "NULO"; }
  if ( $telefone == "" ) { $telefone = "(00) 0000-0000"; }
  if ( $celular == "" ) { $celular = "(00) 0000-0000"; }
  if ( $email == "" ) { $email = "nenhum fornecido"; }
  $query_adic = "INSERT INTO contatos (ID, nome, telefone, celular, email) VALUES ('NULL', '$nome', '$telefone', '$celular', '$email')";
  $resultado_adic = mysql_query($query_adic) or die("Erro: ".mysql_error());
}

Bom, essa função serve exatamente para fazer o que o nome propõe, adicionar um novo contato, ela possui uma série de testes para atribuir valores às variáveis se as mesmas forem vazias. Novamente, visando a facilidade da inserção, basta digitar Adicionar(“nome”, “telefone”, “celular”, “email”); para que as informações sejam armazenadas no BD.

Mas Simonarde, eu já adicionei, já listei, mas é se eu quiser remover? Vamos resolver isso agora caro visitante, com a função Deletar();

function Deletar($id) {
  $query_del2 = "DELETE FROM contatos WHERE ID='$id'";
  $resultado_del2 = @mysql_query($query_del2) or die("Erro: ".mysql_error());
  if ($resultado_del2) {
   echo "Removido com Sucesso! Clique <a href=\"index.php\">aqui</a> para retornar.";
  }
}

Pronto, basta passar como parâmetro o ID do contato que queres deletar e pronto (Deletar(3); por exemplo), ele será removido do DB ;) .

E se eu coloquei as informações erradas Simonarde, vou ter que apagar o contato e cadastrar de novo? Não ilustríssimo, você vai desenvolver agora a função Editar() e Editando(), uma vai buscar as informações no BD e a outra vai alterar esse registro :D

function Editar($id, $nome, $telefone, $celular, $email) {
  Conectar( "user", "senha"); //Passe seu user e sua senha como parametros.
  if ( $nome == "" ) { $nome = "NULO"; }
  if ( $telefone == "" ) { $telefone = "(00) 0000-0000"; }
  if ( $celular == "" ) { $celular = "(00) 0000-0000"; }
  if ( $email == "" ) { $email = "nenhum fornecido"; }

  $query_edit = "UPDATE contatos SET nome='$nome', telefone='$telefone', celular='$celular', email='$email' WHERE ID='$id'";
  $resultado_edit = mysql_query($query_edit) or die("Erro: ".mysql_error());
 }

function Editando($ide) {
  Conectar( "user", "senha"); //Passe seu user e sua senha como parametros.
  $query_edit2 = "SELECT * FROM contatos WHERE ID='$ide'";
  $resultado_edit2 = mysql_query($query_edit2) or die("Erro: ".mysql_error());
  if ($resultado_edit2) {
   while ($linha_edit2 = mysql_fetch_array($resultado_edit2)) {
    echo "<form action=\"editar.php\">
           Nome: <input type=\"text\" name=\"nomec\" value=\"".$linha_edit2["nome"]."\"> <br/>
           Telefone: <input type=\"text\" name=\"telefonec\" value=\"".$linha_edit2["telefone"]."\"> <br/>
           Celular: <input type=\"text\" name=\"celularc\" value=\"".$linha_edit2["celular"]."\"> <br/>
           E-mail: <input type=\"text\" name=\"emailc\" value=\"".$linha_edit2["email"]."\"> <br/>
           <input type=\"hidden\" name=\"valida\" value=\"ok\">
           <input type=\"hidden\" name=\"ID\" value=\"".$linha_edit2["ID"]."\">
           <input type=\"submit\" value=\"Editar\"> <input type=\"button\" value=\"Cancelar\" onClick=\"javascript:history.back(1);\">
          </form>";
   }
  }
 }

Pronto, para apresentar um formulário com as informações a serem editadas, basta digitar Editando(ID); passando o ID do contato a ser editado como parametro, já para salvar, basta digitar Editar(“ID”, “nome”, “telefone”, “celular”, “email”); passando as informações como parametro, simples não? ;)

Bom, agora só falta você fechar a tag PHP que você abriu lááá no começo do Artigo, para tal, digite: ?> e com essas funções escritas, seu arquivo “funcoes.php” está completo e pronto para uso.

No próximo post, iremos desenvolver a “index.php”, que será responsável por mostrar os contatos cadastrados e oferecer a opção para inserir um novo registro no BD.

Até lá ;)

Simonarde Jr.





Gerenciador de Contatos v1.0

3 04 2008

Salve salve caríssimos visitantes, cá estou a postar novamente e dessa vez vos trago o resultado da pesquisa do post anterior… Bom, seguinte, pelos comentários que recebi aqui juntamente com o conselho do meu professor Thiago, decidir então fazer o Artigo ensinando a fazer e no final postar o Aplicativo pronto para uso, certo? Então, fiquem de olho que eu já comecei a desenvolver o projeto e, muito em breve, eu posto a primeira parte do Artigo ;)

Vou ficando por aqui, até o próximo post…

Simonarde Júnior.





Ó dúvida…

31 03 2008

Bom galera, após exatos 170 dias sem postar (o que é equivalente a 5 meses e 20 dias, quase meio ano :O ), cá estou eu escrevendo novamente…

Primeiramente gostaria de pedir desculpas aos meus nobres visitantes pelo tempo sem atualizações, prometo não acontecer de novo, e, aproveitando, agradecer as 7,311 visitas únicas que eu tive até o presente momento :D .

Então vamos ao motivo do post, estou aqui a pensar em um projeto que vai ser de grande utilidade para mim, que costumo sempre perder meus contatos… Então eu pensei, porque não manter os meus contatos em um banco de dados, com uma interface amigável e bem diferente desses softwares que costumam vir com o celular (que aliás são horríveis, pesados e geralmente nunca fazem o serviço direito), junto com a facilidade de eu poder acessá-los de qualquer lugar? Daí surgiu a idéia de desenvolver um sistema em PHP para que eu pudesse guardar meus contatos no meu servidor e ter acesso a qualquer hora e qualquer lugar, sem precisar instalar nada, usando apenas o navegador de qualquer computador… Então surgiu outra dúvida: disponibilizar o aplicativo para download ou simplesmente criar um Artigo ensinando a fazer um (o que seria melhor pois além da possibilidade de personalização, ainda rolaria o aprendizado :D ) ?

Bom, resolvi perguntar a vocês o que acham melhor, o aplicativo para download ou o Artigo? Respondam aí que a partir de Quarta-Feira (dia 02), eu já coloco aqui o escolhido :D

Vou ficando por aqui, espero que aceitem minhas sinceras desculpas pelo tempo sem postar…

Ahh! E obrigado mais uma vez pelas visitas :D

Simonarde Júnior.