Iniciando com SQLite

26 06 2009

Salve salve caros visitantes, primeiramente, vamos conhecer o que é  SQLite.

SQLite é um banco de dados interessantíssimo, primeiro porque ele gera apenas um arquivo no sistema, isso mesmo, você pode ter 1283709 tabelas dentro de um único arquivo, segundo porque ele é multi-plataforma, isso quer dizer que o mesmo arquivo que você gerar no Windows, vai rodar no Linux sem a necessidade de nenhuma gambiarra conversão, o que facilita também o backup do DB, e terceiro, ele não necessita de instalação (só, claro, que a sua dll seja chamada no php.ini (extension=php_sqlite.dll)), muito menos de um servidor de banco de dados rodando na máquina e, por esse motivo, chega a ser de três a quatro vezes mais rápido que o MySQL.

Bom, nos testes que eu fiz aqui no meu servidor, ele realmente realizou as consultas beeeem mais rápido que no MySQL. Então, vamos ao exemplo em PHP:

<?php
	// Desenvolvido por Simonarde Jr.
	// ----------------------------------------------------------

	//verificando se o arquivo do banco existe, se não existir, cria.
	if ( !file_exists("banco.db") ) {
		$db = sqlite_open("banco.db");
		$SQL = "CREATE TABLE usuarios (codigo INTEGER PRIMARY KEY, nome VARCHAR(100), login VARCHAR(20), senha VARCHAR(20));";
		$result = sqlite_query($db, $SQL);
	}

	//acessando e recuperando dados à partir do "banco.db"
	if ( !$db = sqlite_open("banco.db") ) {
		echo "Erro ao tentar abrir o Banco de Dados.";
	} else {
		$SQL = "SELECT nome, login FROM usuarios ORDER BY nome;";
		$result = sqlite_query($db, $SQL);
		if ( $result && sqlite_num_rows($result) > 0 ) {
			while ( $row = sqlite_fetch_array($result) ) {
				echo "Nome: ".$row["nome"]." - Login: ".$row["login"]."
";
			}
		}
	}
?>

Notem que o PHP já tem, nativas, as funções para conexão e operação com o SQLite, e não é muito diferente das funções do MySQL, portanto, para sites, projetos, aplicativos, whatever you’re developing de pequeno e médio porte, o SQLite é uma excelente alternativa ao MySQL.

O exemplo acima é totalmente funcional, você pode copiar e colar estudar e modificar à suas necessidades e se precisar de alguma ajuda, deixa um comentário que eu ajudo na medida do possível (lembrando que eu também estou começando agora :) ). Para maiores informações, clica aqui e visite o site do SQLite, tem tudo que você procura lá ;)

Até o próximo post,
Simonarde Jr.





Repositório de Códigos PHP: Classe de conexão ao MySQL

25 05 2009
<?php

/*
	Classe para conexão ao MySQL.
	------------------------------------------------------------------------------------
		Autor:	Simonarde Jr.
		E-mail:	simonarde@gmail.com
		URL:	http://simonardejr.wordpress.com
		Data:	25/05/2009 @ 10:29:46  

		Uso:
			$foo = new Conexao();
			$foo->configConexao("localhost", "root", "senha", "banco"); // opcional
			$foo->Conectar();
	------------------------------------------------------------------------------------
*/

	class Conexao {

		private $server = "localhost";	//servidor padrão
		private $usuario = "root";	//usuário padrão
		private $senha = "";		//senha padrão
		private $db = "dbteste";	//banco padrão
		private $conexao;

		function configConexao($server, $usuario, $senha, $db) {
			$this->server = $server;
			$this->usuario = $usuario;
			$this->senha = $senha;
			$this->db = $db;
		}

		function Conectar() {
			$this->conexao = @mysql_connect($this->server, $this->usuario, $this->senha)
							or die( "Erro ao conectar ao MySQL: ".mysql_error() );
			if ($this->conexao) {
				$banco = @mysql_select_db($this->db)
							or die( "Erro ao selecionar o banco de dados: ".mysql_error() );
			}
		}

		function Desconectar() {
			$fecharConexao = mysql_close($this->conexao);
		}
	}
?>

Copyleft Simonarde Jr. – Você pode copiar, editar e distribuir (tanto a versão original quanto a modificada) desde que sejam mantidos os créditos.





STI 2008: Geeks e Tecnologia!

11 11 2008

Restando um pouco menos que uma hora para início do evento mais esperado da Uninorte, a Semana de Tecnologia da Informação (STI), cá venho trazer informações importantes para vocês, meus ilustríssimos visitantes :D .

Bom, para começar, vamos falar um pouco sobre o evento, que conta com o apoio da SBC (Sociedade Brasileira de Computação) e vai ser realizado pelos cursos de Bacharelado em Sistemas de Informação (meu curso) e Tecnologia em Redes de Computadores da Uninorte/AC nos dias 11 à 14 de novembro. Nesse evento, que é um verdadeiro prato cheio para Geeks, serão realizadas várias oficinas interessantes sobre programação, palestras e o melhor de tudo, troca de conhecimento entre os participantes :D .

Entre as oficinas, estão as de Desenvolvimento com Ruby on Rails e Desenvolvimento de aplicativos Java para dispositivos móveis, as quais eu irei participar. Já as palestras, posso citar Firewall Linux (por: André Nasserala – Governo do Estado do Acre) e Palestra: Segurança da Informação (por: Microsoft Brasil), entre outras. Contaremos também com um evento muito bacana, o Linux 12 horas, onde será dado um minicurso com noções básicas sobre o SO OpenSource e também será realizada a instalação em computadores e notebooks dos participantes (e de quem mais quiser migrar), portanto, quem quiser instalar o Linux mas não sabe como ou tem “medo” de migrar, basta levar lá que profissionais e professores estarão lá realizando o Linux Install Fest :D . Como eu já tenho uma certa experiencia com o SO OpenSource, estarei lá dando uma força para o pessoal e também me coloco a disposição para tirar dúvidas de como instalar em DualBoot e outras coisas, basta postar sua dúvida aí nos comentários.

Então, sem mais nem longas, vou passar a programação:

PROGRAMAÇÃO DIURNA – OFICINAS
LOCAIS: LABORATÓRIOS DE INFORMÁTICA DA UNINORTE.

11/11/2008
Abertura Oficial do STI
Crimes Digitais (Profª. Andréia Stanger)

12/11/2008
Desenvolvimento com Ruby on Rails
Sistema Operacional FreeBSD
Desenvolvimento web com CMS
Banco de Dados mySQL avançado

13/11/2008
Montando e configurando Servidores Web
Desenvolvimento para dispositivos móveis com JME
Introdução ao Genexu
Introdução a Web Services

14/11/2008
Configuração e segurança em redes Wireless
Aplicativos Microsoft em Sistemas Linux com WINE
Desenvolvimento de aplicações Web com PHP

PROGRAMAÇÃO NOTURNA – PALESTRAS E ATIVIDADES
LOCAL: AUDITÓRIO DA UNINORTE

12/11/2008
Firewall Linux (André Nasserala – Governo do Estado do Acre)
Primeira Mostra de Trabalhos – Sistemas de Informação

13/11/2008
Palestra: Metodologia de Desenvolvimento com Genexus (Ábaco)
Palestra: Palestra: Qualidade de Software (Prof. Osmar Nilo)

14/11/2008
Palestra: Segurança da Informação (Microsoft)
Palestra: Introdução a Web Semântica (Prof. Luiz Matos)

LINUX 12 HORAS – 12/11/2008
Atividade 01: Oficina de Introdução ao Sistema Operacional Linux (Gratuito – Acesso Livre)
Atividade 02: Linux Install Fest

Bom caríssimos visitantes, eu vou encerrar o post por aqui, mas não vai ser o último sobre a STI, estarei postando novidades assim que forem ocorrendo (cara, eu adoro meu notebook e sua mobilidade :D ). Até o próximo.

Fotos e comentários

– Abertura da Semana de Tecnologia da Informação (11/11/2008 20:00)

A abertura foi muito bacana, o Professor Schoaba falou sobre Encriptação de Dados e a Segurança de Informações, mostrando alguns algoritmos como o RSA. Fiquei bastante surpreso com a quantidade de pessoas presentes no local, foi muito acima do que eu esperava, ponto para a organização do evento :D . Como hoje foi a abertura, então só tivemos a abertura, que teve início as 20:00, e a palestra do Professor Schoaba, que teve término as 21:30. Amanhã as atividades começam cedo, às 8:00 e encerram-se as 18:00. Na parte da noite teremos as palestras previstas na programação.

– Desenvolvimento com Ruby on Rails e Linux Install Fest (12/11/2008 08:00)

Hoje foi a vez da oficina “Desenvolvimento com Ruby on Rails” e o “Linux Install Fest”, foi muito bacana, na oficina de RoR, vimos o quanto é rápido criar sistemas com ele, por exemplo, um sistema CRUD que eu demoraria mais ou menos 2 horas para desenvolver, nós fizemos em 3 minutos. Realmente impressionante. Já no Linux Install Fest, o Professor Schoaba fez algumas instalações do Ubuntu nos notebooks de algumas pessoas que queriam migrar, além de solucionar alguns bugs e coisas do gênero. Eu dei uma passada rapidinho, mas a tempo de salvar o Schoaba com a instalação de um modem 3G da BrT :D . Depois da oficina e do evento, tivemos uma palestra sobre Firewall em Linux, e foi muito bacana também. Amanhã o dia começa cedo novamente, às 8:00 com a oficina “Desenvolvimento com Java para dispositivos móveis”. Até a próxima atualização ;) .

– Desenvolvimento para dispositivos móveis com JME (13/11/2008 08:00)

Agora foi a vez da oficina “Desenvolvimento para dispositivos móveis com JME”, cara, foi muito bacana, eu achava que desenvolver para celulares e afins era uma coisa do outro mundo, mas não! Como o Marcelo mesmo disse várias vezes no curso: Java é Java. Realmente, fiquei bem empolgado em começar a desenvolver algumas coisas para o meu a1200i :D . Já na parte da noite, tivemos a palestra sobre o Genexus, uma ferramenta bacaninha, que gera seu sistema baseado nas informações que você dá para ele. Amanhã é o último dia, eu farei uma participação extra na oficina “Aplicativos Microsoft em Sistemas Linux com WINE”, que tem início as 8:00 da manhã. Até lá :D .

– Aplicativos Microsoft em Sistemas Linux com WINE (14/11/2008 08:00)

Essa oficina foi muito boa também, apesar te ter somente 6 alunos, nos divertimos bastante instalando programas feitos para Windows no Linux. Um fato curioso que aconteceu foi que eu passei exatos 32 minutos tentando instalar o Internet Explorer no meu Ubuntu, o pior não foi o tempo, foi a minha paciência ao tentar de novo a cada erro que dava… Pois é, quem me conhece sabe, não gosto nada nada do IE… E eu só parei quando consegui ver o bixo rodando no meu Linux :P . O próximo passo é tentar instalar alguns jogos (alguns eu sei que funcionam, tem um post meu aqui no blog que eu conto) e o Photoshop CS3 (que aparentemente abriu, mas deu um erro, acredito que ocorreu porque estava na minha partição Windows). Seja livre você também ;) . Por ironia (ou não) do destino, tivemos também uma palestra da Microsoft hoje, onde se falou sobre segurança da informação e coisas do gênero, foi bem bacana, tivemos também uma palestra sobre “Web Semântica”.

– Encerramento (14/11/2008 22:00)

Bom, depois de quatro dias de oficinas e palestras, foi feito o encerramento da Semana de Tecnologia da Informação, eu estou muito cansado, afinal, eu participei de todos os dias (oficinas e palestras, sem contar nas ajudinhas aqui, outras ali) mas extremamente satisfeito com os resultados. As oficinas foram todas muito bacanas, as palestras todas dinâmicas. Tenho certeza que todos que participaram, gostaram muito do evento, os Geeks como eu então, nem se fala :P . Com isso, eu encerro as atualizações desse post, em breve eu vou colocar todas as fotos no ar, com espaço para vocês, ilustríssimos visitantes, comentarem as fotos.

Mais uma vez, parabéns a toda a equipe da Uninorte pela realização e organização da Semana de TI.

Até o próximo,
Simonarde Jr.





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




Reaproveitamento de código: adote essa idéia ;)

27 10 2008

Salve ilustríssimos visitantes, cá estou eu novamente após um looongo período sem postar (me desculpem :( ).

Pois bem, indo direto ao assunto do post, quantas vezes você já fez um algoritmo que valida um CPF? Quantas vezes fez uma rotina que formata a data no padrão 0000-00-00? Eu mesmo já fiz várias vezes, tanto que para mim o processo já é quase automático :P , mas claro que às vezes você faz um ctrl+c ctrl+v de um projeto para o outro, essa é a famosa POG (Programação Orientada à Gambiarras, que atire a primeira pedra o Programador que nunca fez uma gambiarra :D ), mas todo mundo sabe, que gambiarras, às vezes (eu disse: às vezes) são necessárias, principalmente quando você tem prazos curtíssimos a cumprir.
Esses dias, eu precisei desenvolver um sistema para o órgão a qual eu trabalho (Embrapa Acre) onde eu precisava fazer, entre outras, a validação do CPF, do e-mail e formatar a data no padrão YYYY-MM-DD, pois bem, me deparei com um atraso terrível ao desenvolver toooodos esses algoritmos novamente, justamente por não ter em mãos os que eu já havia desenvolvido. Mas a idéia de reaproveitamento de código que eu quero passar, não é um simples ctrl+c ctrl+v, mas sim você começar a desenvolver suas rotinas da forma mais genérica possível, onde uma rotina sirva tanto para o projeto x, quanto para o y, com nenhuma (ou quase nenhuma) alteração.

Ah! Simonarde, mas eu vou ter que reescrever meu código inteiro de novo, e o que eu posso fazer com 3 linhas, vou ter que fazer com 6, 7… Isso é chato… .

Eu sei caro visitante, mas pensa, fazendo sua rotina da forma genérica, você só vai sofrer uma vez. Por exemplo, digamos que você tem um script PHP que conecta ao MySQL, certo? Pois bem, você escreve aí umas 3 a 4 linhas, em média, então digamos que você crie uma Classe chamada Conexao(), beleza, você vai digitar umas 10 linhas, maaaaas, somente na primeira vez :P , quando você for conectar novamente, você vai digitar apenas 1. Bem melhor né? Sem contar que depois você pode somente dar um include_once(“arquivo”) ou require(“arquivo”) que sua Classe de conexão vai estar lá, prontinha para uso :D . No próximo post, eu vou dar alguns outros exemplos de Classes e disponibilizar algumas para vocês :D .

Então, pensando nisso, eu deixo a dica para vocês: não joguem fora aquele algoritmo que escreve um simples “oi” na tela, um dia ele poderá ser, de alguma forma, útil ;)

Simonarde Jr.

Blogged with the Flock Browser




O 8,000 visitante \o/

8 05 2008

Não, não é mais uma daquela propagandas em que diz: você é o 999,999,99 visitante, clique aqui para receber seu prêmio… E ainda tem aquelas que dizem: Isso não é brincadeira… ¬¬…  Hahahaha!! Mas então, o meu visitante número 8,000 foi um cara muito gente boa, brother mesmo, o Mário… Amigo dos tempos do CEDUC, Hein galera que foi para o Varjão!! Hahahaha!! Bons tempos aquele…

Bom, valeu brother, abraço!

Simonarde Jr.





A moda agora é twittar xD

8 05 2008

Twitter é um microblog, onde você responde a simples pergunta: o que você está fazendo agora? E automaticamente, todos os seus amigos ficam sabendo… Interessante, não??
Pois bem, a princípio pode parecer besteira, mas é só você começar a usar para ver o quão viciante é esse serviço, eu por exemplo, posto praticamente o tempo todo. O melhor, é que você não precisa necessariamente estar na frente do computador para atualizar, você pode fazê-lo via SMS ou via WAP a partir do seu dispositivo móvel preferido ou então a partir do seu MSN, GTalk, enfim…

bom, quem quiser me seguir lá e saber o que eu estou fazendo, basta entrar nesse link e e clicar em “Follow“, pronto, rápido, fácil, eu diria até indolor :D

Até o próximo post, boas twittadas

Simonarde Jr.





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.





Seja Livre: Use Linux [parte 2]

8 04 2008

Salve salve meus ilustríssimos visitantes, cá estou de volta com os resultados das minhas experiências com o Linux.

  • Edição de imagens

Bom, confesso que o que me prendia mais ao Windows Vista era o Adobe Photoshop. Mas aí, você que conhece Linux fala: mas nós temos o GIMP! É, realmente, nós temos o GIMP… Mas eu não conseguia usá-lo, até que eu decidir dar uma segunda chance para ele… O resultado vocês devem imaginar né? :D Não, não, eu não desisti dele, pelo contrário, estou me adaptando muito bem a ele e, sendo bem sincero, não deve nada nada ao seu concorrente proprietário…

Temos também o Inkscape, um software OpenSource para vetorização. Ele é bem simples, mas não se engane por isso, estou aprendendo a vetorizar ainda, mas já consigo fazer algumas coisas bacanas…

  • Instant Messaging

Para conversas online, temos muitas opções de IM que conectam em várias redes ao mesmo tempo, mas os que eu testei aqui foi o Pidgin (ex-Gaim) e o aMSN (idêntico ao software da Microsoft), ambos cumprem bem o papel, mas recomendo o aMSN.

  • Multimídia

Quem me conhece sabe, não vivo sem ouvir música ou assistir meus seriados e filmes, no Linux temos muitas opções de players, um que eu venho usando e gostado bastante é o VLC media player (para DVDs, DivX, entre outros), já para música (mp3, ogg… etc), uso o Rhythmbox, ambos também cumprem muito bem a sua missão e sua interface não poderia ser mais simples.

  • Programação

Bom, 99% do meu tempo na frente do computador é gasto com programação, não tem jeito… Então, nada mais justo que um tópico sobre as ferramentas de programação disponíveis no X, não é mesmo?? Então, não tive tempo para testar outras além do Lazarus, que nada mais é que uma ferramenta que visa substituir o Delphi da Borland e o Eclipse (utilizado para programar em PHP, Java, entre outras), mas não testei muita coisa além da sua interface gráfica :D .

  • Jogos

Atualmente eu estou jogando dois jogos, Diablo II (e sua expansão) e World of Warcraft. O primeiro rodou belezinha, sem nenhum tipo de complicação, já o segundo, esse sim, deu um pouco de trabalho, pois temos que fazer uns hacks para que ele rode tranquilo (os quais ainda não fiz todos :D ). Estou planejando testar Shadow Ops: Red Mercury e talvez algum outro de guerra.

  • Conclusão

Bom caríssimos visitantes, como podem ver, cada vez mais gosto do Linux, tanto por ser seguro (uma vez que não tenho que me preocupar com vírus, spywares, malwares e todas essas pragas), quanto por suprir todas as minhas necessidades como programador. O melhor, tudo isso de graça, com amplo suporte espalhado pela internet, tudo o que você quer configurar, existe um tutorial bem explicado e detalhado… A comunidade OpenSource é simplesmente fodástica!

Vou encerrando por aqui, até o próximo post :D

Simonarde Júnior.