<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webmaster.pt - Marketocracia Digital &#187; PHP</title>
	<atom:link href="http://www.webmaster.pt/categoria/programacao/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.webmaster.pt</link>
	<description>Tutoriais E Artigos Sobre Marketing, Programação, WebDesign, Joomla E WordPress</description>
	<lastBuildDate>Mon, 06 Sep 2010 09:59:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como Criar Sistema De O.S. / Orçamentos Parte2</title>
		<link>http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html</link>
		<comments>http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html#comments</comments>
		<pubDate>Fri, 03 Sep 2010 10:27:18 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[orcamento]]></category>
		<category><![CDATA[ordem servico. script os]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=9287</guid>
		<description><![CDATA[Aprenda a criar um script para gestão e envio de ordens de serviço / orçamentos online, em PHP e MySQL, prático e fácil de usar. Inclui o código para download.<p><a href="http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html">Como Criar Sistema De O.S. / Orçamentos Parte2</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte1'>Como Criar Sistema De O.S. / Orçamentos Parte1</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte2-4625.html' rel='bookmark' title='Permanent Link: Sistema De Notícias Em PHP E MySQL Parte2'>Sistema De Notícias Em PHP E MySQL Parte2</a></li>
<li><a href='http://www.webmaster.pt/sistema-newsletter-php-mysql-1061.html' rel='bookmark' title='Permanent Link: Sistema De Newsletter Em PHP e MySQL'>Sistema De Newsletter Em PHP e MySQL</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Na matéria anterior falamos um pouco sobre o Sistema de O.S. e demonstramos seu funcionamento em telas printadas:</p>
<p><a href="http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html">Como Criar Sistema De O.S. / Orçamentos Parte1</a></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/ordem_servico.jpg" alt="ordem servico" title="ordem servico" width="600" height="463" class="aligncenter size-full wp-image-9428" /></p>
<p>Na matéria de hoje estaremos postando parte do script para que você possa posteriormente dar manutenção e até mesmo melhorar a qualidade do que foi desenvolvido.</p>
<h2>Conhecendo Os Ficheiros</h2>
<p>Como disse anteriormente, os ficheiros que postamos não são dificeis de serem customizados.</p>
<p>Abaixo falaremos um pouco sobre alguns deles. ok?</p>
<p>Diretório: action</p>
<p><strong>config.php:</strong></p>
<p>Ele tem a finalidade de efetuar o acesso à base de dados e trazer em tela as principais variáveis que descrevem a empresa (ex.: Nome da empresa, URL, Telefones, Emails).</p>
<p>Veja o código a seguir:</p>
<p><pre><code><br />
&lt;?php<br />
<br />
// servidor<br />
$database = &quot;SERVIDOR&quot;; // Nome do Servidor<br />
$dbname&nbsp;&nbsp; = &quot;BASEDEDADOS&quot;; // Nome da Base de Dados<br />
$usuario&nbsp;&nbsp;= &quot;USUARIO&quot;; // Usuário do MySQL<br />
$dbsenha&nbsp;&nbsp;= &quot;SENHA&quot;; // Senha do Usuário MySQL<br />
<br />
$conexao=mysql_connect ($database, $usuario, $dbsenha);<br />
<br />
if($conexao){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (mysql_select_db($dbname, $conexao)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Não foi possível selecionar o Banco de Dados&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Erro ao conectar o MySQL&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
<br />
$query_email_admin = &quot;SELECT * FROM dados_empresa WHERE id_empresa = &#039;1&#039;&quot;;<br />
$rs_query_email_admin = mysql_query ($query_email_admin);<br />
<br />
$rs_row_email_admin = mysql_fetch_array($rs_query_email_admin);<br />
<br />
$email_comercial_cliente = $rs_row_email_admin[&quot;email_comercial&quot;];<br />
$email_suporte_cliente&nbsp;&nbsp; = $rs_row_email_admin[&quot;email_suporte&quot;];<br />
$nome_empresa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $rs_row_email_admin[&#039;nome_empresa&#039;];<br />
$descricao_empresa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $rs_row_email_admin[&#039;nome_fantasia&#039;];<br />
$endereco_site_cliente&nbsp;&nbsp; = $rs_row_email_admin[&#039;url&#039;];<br />
$ddd_fone_empresa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $rs_row_email_admin[&#039;ddd_fone&#039;];<br />
$fone_empresa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $rs_row_email_admin[&#039;fone&#039;];<br />
$ddd_fone_filial_empresa = $rs_row_email_admin[&#039;ddd_fone_filial&#039;];<br />
$fone_filial_empresa&nbsp;&nbsp;&nbsp;&nbsp; = $rs_row_email_admin[&#039;fone_filial&#039;];<br />
<br />
$cidade_empresa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $rs_row_email_admin[&#039;cidade&#039;];<br />
<br />
$data=date(&quot;d/m/Y&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DATA HJ<br />
$hora=date(&quot;H:i&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// HORA AGORA<br />
<br />
//================================<br />
//DEFININDO OS CABEÇALHOS DE EMAIL<br />
//================================<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;$admail&nbsp;&nbsp;= $email_comercial_cliente;&nbsp;&nbsp; // EMAIL DE ADMINISTRADOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;$ass_mail= &quot;ORDEM DE SERVIÇO&quot;; // ASSUNTO DO EMAIL ( AO EFETUAREM CADASTRO )<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;// HEADER PARA ENVIO DO EMAIL<br />
&nbsp;&nbsp;&nbsp;&nbsp;$headers&nbsp;&nbsp;= &quot;MIME-Version: 1.0\r\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$headers .= &quot;Content-Type:text/html; charset=iso-8859-1\r\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$headers .= &quot;From:[$nome_empresa]&lt;$email_comercial_cliente&gt;\r\n&quot;;<br />
<br />
# ===============================================================<br />
#&nbsp;&nbsp; Função para formatar o valor do preço.<br />
# ===============================================================<br />
<br />
function formata($valor){<br />
&nbsp;&nbsp;&nbsp;&nbsp; $negativo = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp; $preco = &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp; $valor = intval(trim($valor));<br />
&nbsp;&nbsp;&nbsp;&nbsp; if ($valor &lt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $negativo = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $valor = abs($valor);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; $valor = strrev($valor);<br />
&nbsp;&nbsp;&nbsp;&nbsp; while (strlen($valor) &lt; 3) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $valor .= &quot;0&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; for ($i = 0; $i &lt; strlen($valor); $i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($i == 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $preco .= &quot;,&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (($i &lt;&gt; 2) AND (($i+1)%3 == 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $preco .= &quot;.&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $preco .= substr($valor, $i , 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; $preco = strrev($preco);<br />
&nbsp;&nbsp;&nbsp;&nbsp; return ($negativo ? &quot;-&quot; : &quot;&quot;) . $preco;<br />
}<br />
?&gt;<br />
</code></pre></p>
<p><strong>validar.php</strong></p>
<p>A página em questão como o nome já diz, tem a finalidade de efetuar validação.</p>
<p>A validação dela e simples e durante o SELECT ele busca o login (email) e senha na base de dados, finalizando com a criação de sessão (conforme o código a seguir).</p>
<p><pre><code><br />
<br />
&lt;?php<br />
<br />
include(&quot;config.php&quot;);<br />
<br />
$login = $_POST[&#039;login&#039;];<br />
$senha = $_POST[&#039;senha&#039;];<br />
<br />
$query_validar = &quot;select * from tbl_usuarios where usuarios_email =&#039;$login&#039; and usuarios_password = &#039;$senha&#039;&quot;;<br />
$rs_validar&nbsp;&nbsp;&nbsp;&nbsp;= mysql_query($query_validar);<br />
if ($rs_validar){<br />
<br />
$campo_validar = mysql_fetch_array($rs_validar);<br />
$usuarios_id&nbsp;&nbsp;= $campo_validar[&#039;usuarios_id&#039;];<br />
$nome_usuario&nbsp;&nbsp;= $campo_validar[&#039;nome&#039;];<br />
session_start();<br />
<br />
$_SESSION[id]&nbsp;&nbsp;&nbsp;&nbsp;= $usuarios_id;<br />
$_SESSION[nome]&nbsp;&nbsp;= $nome_usuario;<br />
$_SESSION[login] = $login;<br />
$_SESSION[cod]&nbsp;&nbsp; = $senha;<br />
<br />
header(&quot;location:../principal.php&quot;);<br />
<br />
}else{<br />
<br />
echo&quot;&lt;script&gt;alert(&#039;Dados de acesso inválidos!&#039;)&lt;/script&gt;&quot;;<br />
echo&quot;&lt;script&gt;location.href=&#039;javascript:history.back(1)&#039;&lt;/script&gt;&quot;;<br />
<br />
}<br />
<br />
?&gt;<br />
</code></pre></p>
<p>Diretório: session</p>
<p><strong>logout.php</strong></p>
<p>Como o nome já diz, este ficheiro tem a finalidade de efetuar o logout (saída) do sistema após destruir a sessão do Usuário conectado (conforme código a seguir).</p>
<p><pre><code><br />
&lt;?php session_start();<br />
<br />
unset($_SESSION[login]);<br />
unset($_SESSION[cod]);<br />
<br />
session_unregister(&quot;login&quot;);<br />
session_unregister(&quot;cod&quot;);<br />
<br />
session_destroy();<br />
<br />
header(&quot;location:../index.php&quot;);<br />
<br />
?&gt;<br />
</code></pre></p>
<p><strong>prot.php</strong></p>
<p>O código disponível nesta página deve ser inserido em cada página interna do sistema, de forma que nenhum usuário sem acesso possa acessá-la (conforme código a seguir).</p>
<p><pre><code><br />
&lt;?php&nbsp;&nbsp;session_start();<br />
if (!(isset($_SESSION[login]) AND (isset($_SESSION[cod])))){<br />
header(&quot;location:index.php&quot;);<br />
}<br />
<br />
?&gt;<br />
</code></pre></p>
<p>Diretório: tpls</p>
<p><strong>os.php</strong></p>
<p>O diretório &#8220;tpls&#8221; tem a finalidade de gravar os templates, ou seja: arquivos em html que serão usados como padrão em nossas atividades.</p>
<p>O ficheiro os.php tem a finalidade de ser usado durante o envio da ordem de serviço através de email (sendo disparado através da página &#8220;os_listar.php&#8221;).</p>
<p><strong>ass.html</strong></p>
<p>Este ficheiro tem por finalidade confirmar o recebimento do orçamento e início das atividades.</p>
<p>OBS.: Como estes arquivos são padrão, porém, podem ser alterados conforme sua necessidade.</p>
<h2>Agradecimentos</h2>
<p>Quero agradecer ao Sr André Sam que há anos atrás disponibilizou gratuitamente na internet um sistema de Ordem de Serviços que me ajudou bastante.</p>
<p>Através dele aprendi a criar tal aplicação e hoje tenho condições de criar soluções infinitamente maiores.</p>
<p>Bem&#8230; ficamos por aqui com esta matéria. Espero que esta solução lhe seja útil.</p>
<p>Em caso de dúvidas ou sugestões para novas matérias, entre em contato conosco e teremos prazer em lhes ajudar.</p>
<p>Download dos arquivos usados neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/ficheiros6.zip'>Como Criar Sistema De O.S. / Orçamentos</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html">Como Criar Sistema De O.S. / Orçamentos Parte2</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;t=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2&amp;notes=Aprenda%20a%20criar%20um%20script%20para%20gest%C3%A3o%20e%20envio%20de%20ordens%20de%20servi%C3%A7o%20%2F%20or%C3%A7amentos%20online%2C%20em%20PHP%20e%20MySQL%2C%20pr%C3%A1tico%20e%20f%C3%A1cil%20de%20usar.%20Inclui%20o%20c%C3%B3digo%20para%20download." title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2&amp;bodytext=Aprenda%20a%20criar%20um%20script%20para%20gest%C3%A3o%20e%20envio%20de%20ordens%20de%20servi%C3%A7o%20%2F%20or%C3%A7amentos%20online%2C%20em%20PHP%20e%20MySQL%2C%20pr%C3%A1tico%20e%20f%C3%A1cil%20de%20usar.%20Inclui%20o%20c%C3%B3digo%20para%20download." title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte2-9287.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte2" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte1'>Como Criar Sistema De O.S. / Orçamentos Parte1</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte2-4625.html' rel='bookmark' title='Permanent Link: Sistema De Notícias Em PHP E MySQL Parte2'>Sistema De Notícias Em PHP E MySQL Parte2</a></li>
<li><a href='http://www.webmaster.pt/sistema-newsletter-php-mysql-1061.html' rel='bookmark' title='Permanent Link: Sistema De Newsletter Em PHP e MySQL'>Sistema De Newsletter Em PHP e MySQL</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como Criar Sistema De O.S. / Orçamentos Parte1</title>
		<link>http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html</link>
		<comments>http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html#comments</comments>
		<pubDate>Tue, 31 Aug 2010 08:05:54 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[orcamento]]></category>
		<category><![CDATA[ordem servico]]></category>
		<category><![CDATA[script os]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=9272</guid>
		<description><![CDATA[Aprenda a criar um script para gestão e envio de ordens de serviço / orçamentos online, em PHP e MySQL, prático e fácil de usar.<p><a href="http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html">Como Criar Sistema De O.S. / Orçamentos Parte1</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte2'>Como Criar Sistema De O.S. / Orçamentos Parte2</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte1-3828.html' rel='bookmark' title='Permanent Link: Sistema De Notícias Em PHP E MySQL Parte1'>Sistema De Notícias Em PHP E MySQL Parte1</a></li>
<li><a href='http://www.webmaster.pt/calendario-asp-net-2478.html' rel='bookmark' title='Permanent Link: Como Criar Um Calendário Em ASP.NET'>Como Criar Um Calendário Em ASP.NET</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Toda programador seja ele iniciante ou experiente certamente já teve a intenção de desenvolver (ou já desenvolveu) algum sistema para cadastro de clientes, envio de orçamento, controle de estoque, controle financeiro, entre outros.</p>
<p>Se seguirmos a lógica do que encontramos em um sistema feito em delphi ou em java, certamente o faremos com perfeição! </p>
<p>O problema é que por encontrar algumas dificuldades no desenvolvimento, alguns deixam de lado suas metas e não concluem tais atividades.</p>
<p>Hoje estaremos lhe mostrando <strong>como elaborar um sistema de orçamento online prático e fácil de usar</strong>. </p>
<p>Até para que você possa entender passo a passo o que elaboramos, vamos detalhar seu funcionamento nesta e na matéria seguinte, postando também o código fonte no final da segunda edição:</p>
<p><a href="http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html">Como Criar Sistema De O.S. / Orçamentos Parte2</a></p>
<h2>O Diferencial De Nosso Sistema</h2>
<p>O sistema de orçamento online é destinado à emissão de ordens de serviço para empresas de todos os portes, sejam elas de pequeno, médio ou grande porte.</p>
<p>O diferencial de usar este ao invés de outros sistemas encontrados no mercado é que ele facilita seus serviços e não há muita dificuldade na hora de se alterar os dados da empresa.</p>
<h2>Estrutura Do Sistema</h2>
<p>Antes de criarmos as tabelas, explicar como funciona a configuração do arquivo que fará a conexão à base de dados, veja abaixo como funciona nossa estrutura:</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem00.jpg" alt="" width="300" height="150" class="aligncenter size-full wp-image-9274" /></p>
<p>Explicando:</p>
<ul>
<li><strong>action</strong>: Será o diretório onde estarão guardados os arquivos de configuração e validação.</li>
<li><strong>imagens</strong>: Será o diretório onde guardaremos todas as imagens do sistema.</li>
<li><strong>scripts</strong>: Guardaremos neste diretório os ficheiros em &#8220;.css&#8221;.</li>
<li><strong>session</strong>: guardaremos neste diretório os arquivos de logout validação (se a estrutura está logada).</li>
<li><strong>tpls</strong>: Guardaremos neste diretório os templates padrão (que poderão ser melhorados de acordo com sua necessidade).</li>
</ul>
<h2>Criando As Tabelas Na Base De Dados:</h2>
<p>Antes de qualquer coisa, vamos criar as tabelas na base de dados!</p>
<p>Para configurar a base de dados através do script, abra o ficheiro script-sql.txt e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados (conforme informações a seguir).</p>
<p><pre><code><br />
<br />
CREATE TABLE `dados_empresa` (<br />
&nbsp;&nbsp;`id_empresa` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`nome_empresa` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`nome_fantasia` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cnpj` varchar(25) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`insc_estadual` varchar(20) default NULL,<br />
&nbsp;&nbsp;`endereco` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`numero` varchar(10) default NULL,<br />
&nbsp;&nbsp;`complemento` varchar(50) default NULL,<br />
&nbsp;&nbsp;`bairro` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cidade` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`estado` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`pais` varchar(150) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cep` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd_fone` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd_fone_filial` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone_filial` varchar(15) default NULL,<br />
&nbsp;&nbsp;`ddd_cel` varchar(5) default NULL,<br />
&nbsp;&nbsp;`fone_celular` varchar(15) default NULL,<br />
&nbsp;&nbsp;`url` varchar(255) default NULL,<br />
&nbsp;&nbsp;`email_comercial` varchar(150) default NULL,<br />
&nbsp;&nbsp;`email_suporte` varchar(150) default NULL,<br />
&nbsp;&nbsp;`email_financeiro` varchar(150) default NULL,<br />
&nbsp;&nbsp;`email_desenvolvimento` varchar(150) default NULL,<br />
&nbsp;&nbsp;`email_vendas` varchar(80) default NULL,<br />
&nbsp;&nbsp;`email_rh` varchar(150) default NULL,<br />
&nbsp;&nbsp;`endereco_skype` varchar(15) default NULL,<br />
&nbsp;&nbsp;`endereco_msn` varchar(150) default NULL,<br />
&nbsp;&nbsp;`palavraschave` varchar(255) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_empresa`)<br />
);<br />
<br />
INSERT INTO `dados_empresa` VALUES (1,&#039;WebMaster.PT&#039;,&#039;S.O. Orçamento Online&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;Campinas&#039;,&#039;São Paulo&#039;,&#039;Brasil&#039;,&#039;&#039;,&#039;19&#039;,&#039;3387-5956&#039;,&#039;19&#039;,&#039;3037-1648&#039;,&#039;&#039;,&#039;&#039;,&#039;http://webmasterphp.org/OS/&#039;,&#039;&#039;,&#039;suporte@empresasnainternet.com.br&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;&#039;,&#039;OS, Servico, ordem servico&#039;);<br />
<br />
CREATE TABLE `tbl_os` (<br />
&nbsp;&nbsp;`os_id` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`cliente` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`email` varchar(120) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`servico` varchar(255) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`detalhes` text NOT NULL,<br />
&nbsp;&nbsp;`custo` int(11) NOT NULL default &#039;0&#039;,<br />
&nbsp;&nbsp;`forma` text,<br />
&nbsp;&nbsp;`metodo` varchar(255) default NULL,<br />
&nbsp;&nbsp;`venc` varchar(60) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`prazo` varchar(80) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`garantia` varchar(60) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`data` date NOT NULL default &#039;0000-00-00&#039;,<br />
&nbsp;&nbsp;`status` int(11) NOT NULL default &#039;0&#039;,<br />
&nbsp;&nbsp;`hash` varchar(80) default NULL,<br />
&nbsp;&nbsp;`dtass` varchar(12) default NULL,<br />
&nbsp;&nbsp;`hrass` varchar(12) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`os_id`)<br />
);<br />
<br />
INSERT INTO `tbl_os` VALUES (2,&#039;Quemuel - Teste&#039;,&#039;comandosusa@gmail.com&#039;,&#039;Consultoria Especializada&#039;,&#039;lorem ipsum dolor&#039;,5000,&#039;A vista&#039;,&#039;Boleto Bancário&#039;,&#039;15/05/2011&#039;,&#039;30 DIAS&#039;,&#039;60 DIAS&#039;,&#039;2010-08-29&#039;,0,NULL,NULL,NULL);<br />
<br />
CREATE TABLE `tbl_usuarios` (<br />
&nbsp;&nbsp;`usuarios_id` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`usuarios_nome` varchar(255) default NULL,<br />
&nbsp;&nbsp;`usuarios_username` varchar(80) default NULL,<br />
&nbsp;&nbsp;`cod` varchar(80) default NULL,<br />
&nbsp;&nbsp;`usuarios_email` varchar(80) default NULL,<br />
&nbsp;&nbsp;`usuarios_email2` varchar(80) default NULL,<br />
&nbsp;&nbsp;`usuarios_endereco` varchar(255) default NULL,<br />
&nbsp;&nbsp;`usuarios_numero` varchar(10) default NULL,<br />
&nbsp;&nbsp;`usuarios_complemento` varchar(80) default NULL,<br />
&nbsp;&nbsp;`usuarios_bairro` varchar(80) default NULL,<br />
&nbsp;&nbsp;`usuarios_cidade` varchar(150) default NULL,<br />
&nbsp;&nbsp;`usuarios_estado` varchar(150) default NULL,<br />
&nbsp;&nbsp;`usuarios_pais` varchar(255) default NULL,<br />
&nbsp;&nbsp;`usuarios_cep` varchar(15) default NULL,<br />
&nbsp;&nbsp;`usuarios_ddd` varchar(5) default NULL,<br />
&nbsp;&nbsp;`usuarios_fone` varchar(10) default NULL,<br />
&nbsp;&nbsp;`usuarios_dddfoneres` varchar(5) default NULL,<br />
&nbsp;&nbsp;`usuarios_foneres` varchar(10) default NULL,<br />
&nbsp;&nbsp;`usuarios_dddcel` varchar(5) default NULL,<br />
&nbsp;&nbsp;`usuarios_fonecel` varchar(10) default NULL,<br />
&nbsp;&nbsp;`usuarios_data_nasc` varchar(5) default NULL,<br />
&nbsp;&nbsp;`usuarios_mes_nasc` varchar(5) default NULL,<br />
&nbsp;&nbsp;`usuarios_ano_nasc` varchar(5) default NULL,<br />
&nbsp;&nbsp;`usuarios_sexo` varchar(15) default NULL,<br />
&nbsp;&nbsp;`usuarios_tipo` varchar(5) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`usuarios_id`)<br />
);<br />
<br />
INSERT INTO `tbl_usuarios` VALUES (3,&#039;ADMINISTRADOR&#039;,&#039;admin&#039;,&#039;21232f297a57a5a743894a0e4a801fc3&#039;,&#039;comandosusa@gmail.com&#039;,&#039;comandosusa@yahoo.com.br&#039;,&#039;Rua Albertino Ridrigues&#039;,&#039;50&#039;,&#039;Fundos&#039;,&#039;Jd. Santa Lúcia&#039;,&#039;Campinas&#039;,&#039;São Paulo&#039;,&#039;Brasil&#039;,&#039;13060541&#039;,&#039;19&#039;,&#039;3233-3917&#039;,&#039;&#039;,&#039;&#039;,&#039;19&#039;,&#039;9683-5956&#039;,&#039;04&#039;,&#039;07&#039;,&#039;1977&#039;,&#039;0&#039;,&#039;a&#039;);<br />
&lt;code&gt;<br />
<br />
OBS.: Os dados de acesso à central de gerenciamento são:<br />
<br />
Login: comandosusa@gmail.com<br />
Senha: admin<br />
<br />
Após configurar as tabelas na base de dados, acesse o diretório &quot;action&quot; e altere o ficheiro config.php (conforme instruções abaixo).<br />
<br />
&lt;code&gt;<br />
$database = &quot;SERVIDOR&quot;;<br />
$dbname&nbsp;&nbsp; = &quot;BASEDEDADOS&quot;;<br />
$usuario&nbsp;&nbsp;= &quot;USUARIO&quot;;<br />
$dbsenha&nbsp;&nbsp;= &quot;SENHA&quot;;<br />
</code></pre></p>
<p>Após alterar as linhas contendo as informações a seguir, feche o ficheiro e faça um teste de acesso.</p>
<h2>Telas Do Sistema</h2>
<p>Vamos conhecer um pouco mais cada tela?</p>
<p><strong>Tela 01: Tela de Login</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem017.jpg" alt="" width="600" height="549" class="aligncenter size-full wp-image-9275" /></p>
<p><strong>Tela 02: Página Principal</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem025.jpg" alt="" width="600" height="469" class="aligncenter size-full wp-image-9276" /></p>
<p><strong>Tela 03: Dados da Empresa</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem033.jpg" alt="" width="600" height="465" class="aligncenter size-full wp-image-9277" /></p>
<p><strong>Tela 04: Informações do Administrador</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem043.jpg" alt="" width="600" height="466" class="aligncenter size-full wp-image-9278" /></p>
<p><strong>Tela 05: Cadastro de Ordem de Serviço</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem052.jpg" alt="" width="600" height="463" class="aligncenter size-full wp-image-9280" /></p>
<p><strong>Tela 06: Apresentação das Ordens de Serviço</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem061.jpg" alt="" width="600" height="323" class="aligncenter size-full wp-image-9281" /></p>
<p><strong>Tela 07: Cadastro de Administrador</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem071.jpg" alt="" width="600" height="466" class="aligncenter size-full wp-image-9282" /></p>
<p><strong>Tela 08: Apresentação dos Administradores</strong></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem081.jpg" alt="" width="600" height="320" class="aligncenter size-full wp-image-9283" /></p>
<p>Bem&#8230; na matéria a seguir, estaremos postando outros ficheiros e explicando um pouco mais sobre a funcionalidade deste sistema.</p>
<p>Aguarde nossa próxima edição e ao final da matéria, faça download dos ficheiros para teste. </p>
<p>A Parte2 do tutorial inclui o código para download e será publicada esta semana.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html">Como Criar Sistema De O.S. / Orçamentos Parte1</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;t=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1&amp;notes=Aprenda%20a%20criar%20um%20script%20para%20gest%C3%A3o%20e%20envio%20de%20ordens%20de%20servi%C3%A7o%20%2F%20or%C3%A7amentos%20online%2C%20em%20PHP%20e%20MySQL%2C%20pr%C3%A1tico%20e%20f%C3%A1cil%20de%20usar." title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1&amp;bodytext=Aprenda%20a%20criar%20um%20script%20para%20gest%C3%A3o%20e%20envio%20de%20ordens%20de%20servi%C3%A7o%20%2F%20or%C3%A7amentos%20online%2C%20em%20PHP%20e%20MySQL%2C%20pr%C3%A1tico%20e%20f%C3%A1cil%20de%20usar." title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-criar-sistema-o-s-orcamentos-parte1-9272.html&amp;title=Como%20Criar%20Sistema%20De%20O.S.%20%2F%20Or%C3%A7amentos%20Parte1" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte2'>Como Criar Sistema De O.S. / Orçamentos Parte2</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte1-3828.html' rel='bookmark' title='Permanent Link: Sistema De Notícias Em PHP E MySQL Parte1'>Sistema De Notícias Em PHP E MySQL Parte1</a></li>
<li><a href='http://www.webmaster.pt/calendario-asp-net-2478.html' rel='bookmark' title='Permanent Link: Como Criar Um Calendário Em ASP.NET'>Como Criar Um Calendário Em ASP.NET</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Rating System Original Em AJAX &#8211; JQuery E PHP</title>
		<link>http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html</link>
		<comments>http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html#comments</comments>
		<pubDate>Mon, 30 Aug 2010 15:00:39 +0000</pubDate>
		<dc:creator>Zeeshan Rasool</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ajax rating]]></category>
		<category><![CDATA[ajax rating script]]></category>
		<category><![CDATA[rating script]]></category>
		<category><![CDATA[rating system]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=8907</guid>
		<description><![CDATA[Uma palavra: Espectacular! Use este sistema de classificação original em AJAX para que os visitantes do blog votem se gostaram ou não dos seus artigos. <p><a href="http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html">Rating System Original Em AJAX &#8211; JQuery E PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/formulario-registo-login-animado-jquery-php-9225.html' rel='bookmark' title='Permanent Link: Formulário De Registo E Login Animado Com jQuery'>Formulário De Registo E Login Animado Com jQuery</a></li>
<li><a href='http://www.webmaster.pt/opcoes-visualizacao-css-jquery-8279.html' rel='bookmark' title='Permanent Link: Opções De Visualização Com CSS E jQuery'>Opções De Visualização Com CSS E jQuery</a></li>
<li><a href='http://www.webmaster.pt/navegacao-abas-css-jquery-6408.html' rel='bookmark' title='Permanent Link: Navegação Em Abas Com CSS E jQuery'>Navegação Em Abas Com CSS E jQuery</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-8908" src="http://www.webmaster.pt/wp-content/uploads/2010/08/rating.jpg" alt="" width="542" height="168" /></p>
<p>Está aqui mais um tutorial jQuery com estilo para você! Um sistema de classificação (rating system) é uma parte importante dum website. Os usuários podem exprimir as suas ideias através da classificação do artigo ou tutorial no website que oferece esse sistema de classificação (rating system) para os usuários votarem.</p>
<p>Este sistema de classificação foi criado em AJAX, jQuery e PHP.</p>
<p>Espero que você goste do tutorial e que comente sobre este tutorial fantástico. Obrigado!</p>
<p>Veja aqui uma <a href="http://phpwebmaster.org/demos/ajax_rating_system/" target="_blank">DEMO deste sistema de classificação em AJAX, jQuery e PHP</a>.</p>
<h2>Estrutura Da Base De Dados MySQL</h2>
<p><pre><code><br />
<br />
CREATE TABLE IF NOT EXISTS `userip` (<br />
`id` int(11) NOT NULL AUTO_INCREMENT,<br />
`userip` varchar(100) NOT NULL,<br />
PRIMARY KEY (`id`)<br />
) ENGINE=MyISAM&nbsp;&nbsp;DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;<br />
<br />
CREATE TABLE IF NOT EXISTS `ajax_rating` (<br />
`id` int(11) NOT NULL AUTO_INCREMENT,<br />
`liked` int(11) NOT NULL,<br />
`dislike` int(11) NOT NULL,<br />
`average` int(11) NOT NULL,<br />
PRIMARY KEY (`id`)<br />
) ENGINE=MyISAM&nbsp;&nbsp;DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;<br />
<br />
–<br />
– Dumping data for table `ajax_rating`<br />
–<br />
<br />
INSERT INTO `ajax_rating` (`id`, `liked`, `dislike`) VALUES<br />
(1, 1, 1,);<br />
<br />
</code></pre></p>
<h2>Código jQuery</h2>
<p><pre><code><br />
$(document).ready(function(){<br />
<br />
$(‘button’).click(function(){<br />
<br />
$(‘.message’).hide();<br />
<br />
var a = $(this).attr(“id”);<br />
<br />
showLoader();<br />
<br />
if(a == “like”)<br />
{<br />
$(‘.greenBar’).animate( {<br />
width: ‘15px’,<br />
opacity: 1,<br />
height: ‘60px’<br />
} );<br />
}<br />
else<br />
{<br />
$(‘.redBar’).animate( {<br />
width: ‘15px’,<br />
opacity: 1,<br />
height: ‘60px’<br />
} );<br />
}<br />
<br />
$.post(“voting.php?value=”+a, {<br />
}, function(response){<br />
<br />
if(a == “like”)<br />
{<br />
$(‘.greenBar’).animate( {<br />
width: ‘15px’,<br />
opacity: 1,<br />
height: parseInt(response)+’px’<br />
} );<br />
}<br />
else<br />
{<br />
$(‘.redBar’).animate( {<br />
width: ‘15px’,<br />
opacity: 1,<br />
height: parseInt(response)+’px’<br />
} );<br />
}<br />
<br />
hideLoader();<br />
<br />
});<br />
});<br />
<br />
//show loading bar<br />
function showLoader(){<br />
$(‘.search-background’).fadeIn(200);<br />
}<br />
//hide loading bar<br />
function hideLoader(){<br />
$(‘.message’).fadeIn();<br />
$(‘.search-background’).fadeOut(200);<br />
};<br />
<br />
});<br />
<br />
</code></pre></p>
<p>Eu usei a função do jQuery animate() para dar estilo ao sistema de classificação (rating system). A visualização a processar mostra que o processo está a decorrer. Trata-se dum sistema de classificação (rating system) atraente, usando jQuery e AJAX. Você pode integrá-lo no seu website. Descarregue o código e use este script!</p>
<h2>CSS</h2>
<p><pre><code><br />
<br />
/* CSS Document */<br />
button {<br />
-moz-background-clip:border;<br />
-moz-background-inline-policy:continuous;<br />
-moz-background-origin:padding;<br />
-moz-border-radius-bottomleft:3px;<br />
-moz-border-radius-bottomright:3px;<br />
-moz-border-radius-topleft:3px;<br />
-moz-border-radius-topright:3px;<br />
background:#F6F6F6 none repeat scroll 0 0;<br />
border:1px solid #CCCCCC;<br />
cursor:pointer;<br />
float:left; margin-left:2px;<br />
height:2.0833em;<br />
overflow:visible;<br />
padding:0 0.5em;<br />
vertical-align:middle;<br />
white-space:nowrap;<br />
}<br />
<br />
.search-background {<br />
display:none;<br />
font-size: 13px;<br />
font-weight: bold;<br />
width:50px; height:95px;<br />
float:left;<br />
position: absolute;<br />
padding-top:20px;<br />
padding-left:17px;<br />
-moz-border-radius: 6px;<br />
-webkit-border-radius: 6px;<br />
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.6);<br />
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.6);<br />
text-align: left;<br />
opacity:0.5;filter: alpha(opacity=50) ;<br />
text-decoration: none;<br />
}<br />
<br />
.search-background {<br />
background:#999999;<br />
color:#FFFFFF;<br />
text-shadow: #fff 0px 0px 20px;<br />
}<br />
<br />
.like_button{background:url(yes-dis.JPG) center left no-repeat; padding-left:15px;}<br />
.like_button:hover{<br />
background:url(yes-enb.JPG) center left no-repeat;<br />
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6);<br />
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6);<br />
}<br />
.dislike_button{background:url(no-dis.JPG) center center no-repeat; padding-left:18px;}<br />
<br />
.dislike_button:hover, .dislike_button:visited{<br />
background:url(no-enb.JPG) center center no-repeat;<br />
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6);<br />
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6);<br />
}<br />
<br />
.ilikethis, .idislikethis, .totalstats{<br />
display: none;<br />
font-size: 1.0em;<br />
height:17px;<br />
padding:7px;<br />
-moz-border-radius: 6px;<br />
-webkit-border-radius: 6px;<br />
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.6);<br />
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.6);<br />
text-align: center;<br />
text-decoration: none;<br />
width:60px;<br />
background-color:#333333;<br />
color:#FFFFFF;<br />
text-shadow: #fff 0px 0px 20px;<br />
}<br />
<br />
.totalstatsbutton{ width:80px; vertical-align:top;background:#F6F6F6 none repeat scroll 0 0;}<br />
.totalstatsbutton .greenBar{background-color:#DDDDDD;&nbsp;&nbsp;height:5px; margin-bottom:3px; height:6px;}<br />
.totalstatsbutton .redbar{background-color:#DDDDDD;&nbsp;&nbsp;height:5px; height:6px;}<br />
<br />
.greenBar{background-color:#AADA37; float:left; margin-bottom:3px; height:11px; margin-top:7px; margin-left:10px; width:15px;}<br />
.redBar{background-color:#CF362F; height:8px; float:left; margin-bottom:3px; margin-top:7px; margin-left:12px; width:15px;}<br />
<br />
.thumbDown div{ float:left; font-size:12px; }<br />
<br />
.text_div{<br />
width:500px; min-height:100px; float:left;<br />
text-align:justify; padding:9px;<br />
text-shadow: 0px -1px 0px #374683;text-shadow: 0px 1px 0px #e5e5ee;<br />
filter: dropshadow(color=#e5e5ee,offX=0,offY=1);<br />
font-family:”Courier New”, Courier, monospace; font-size:12px;<br />
-moz-border-radius: 6px;<br />
margin-right:8px;<br />
-webkit-border-radius: 6px;<br />
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1);<br />
background-color:#CBD9EF;<br />
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1);<br />
}<br />
<br />
h2{text-shadow: 0px -1px 0px #374683;text-shadow: 0px 1px 0px #e5e5ee;<br />
filter: dropshadow(color=#e5e5ee,offX=0,offY=1);<br />
font-family:”Courier New”, Courier, monospace;}<br />
<br />
.rating_div{<br />
width:70px; height:100px; float:left;<br />
}<br />
<br />
.message{ color:#0066CC;font-size:12px; display:none; padding:2px;<br />
text-shadow: 0px -1px 0px #374683;text-shadow: 0px 1px 0px #e5e5ee;<br />
filter: dropshadow(color=#e5e5ee,offX=0,offY=1);<br />
font-family:”Courier New”, Courier, monospace; font-size:12px;}<br />
<br />
</code></pre></p>
<h2>HTML</h2>
<p><pre><code><br />
<br />
&lt;div id=”rating_div_1″&gt;<br />
&lt;?php include (’show_current_rating.php’)?&gt;<br />
&lt;/div&gt;<br />
<br />
&lt;div&gt;<br />
&lt;label&gt;&lt;img src=”loading.gif” alt=”&quot; /&gt;&lt;/label&gt;<br />
&lt;/div&gt;<br />
<br />
&lt;div style=”&quot; id=”text_div_1″&gt;<br />
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. Lorem Ipsum is simply dummy text of the printing and typesetting industry.<br />
&lt;/div&gt;<br />
<br />
&lt;br clear=”all” /&gt;&lt;br clear=”all” /&gt;<br />
<br />
&amp;nbsp;<br />
&lt;div id=”update_count” style=”float:left;”&gt;<br />
<br />
&lt;/div&gt;<br />
&lt;br clear=”all” /&gt;<br />
&lt;div id=”voting_result”&gt;<br />
<br />
&lt;/div&gt;<br />
<br />
</code></pre></p>
<p>Aqui, eu estou a usar uma tabela separada para guardar o IP dos usuários que usam o sistema de classificação (rating system) para termos um registo dos usuários que já votaram e assegurarmos que não votam mais do que uma vez.</p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/rating_system.zip'>Rating System Original Em AJAX &#8211; JQuery E PHP</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html">Rating System Original Em AJAX &#8211; JQuery E PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP%20-%20http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;t=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;title=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP&amp;notes=Uma%20palavra%3A%20Espectacular%21%20Use%20este%20sistema%20de%20classifica%C3%A7%C3%A3o%20original%20em%20AJAX%20para%20que%20os%20visitantes%20do%20blog%20votem%20se%20gostaram%20ou%20n%C3%A3o%20dos%20seus%20artigos.%20" title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;title=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP&amp;bodytext=Uma%20palavra%3A%20Espectacular%21%20Use%20este%20sistema%20de%20classifica%C3%A7%C3%A3o%20original%20em%20AJAX%20para%20que%20os%20visitantes%20do%20blog%20votem%20se%20gostaram%20ou%20n%C3%A3o%20dos%20seus%20artigos.%20" title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;title=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;title=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Frating-system-ajax-jquery-php-8907.html&amp;title=Rating%20System%20Original%20Em%20AJAX%20-%20JQuery%20E%20PHP" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/formulario-registo-login-animado-jquery-php-9225.html' rel='bookmark' title='Permanent Link: Formulário De Registo E Login Animado Com jQuery'>Formulário De Registo E Login Animado Com jQuery</a></li>
<li><a href='http://www.webmaster.pt/opcoes-visualizacao-css-jquery-8279.html' rel='bookmark' title='Permanent Link: Opções De Visualização Com CSS E jQuery'>Opções De Visualização Com CSS E jQuery</a></li>
<li><a href='http://www.webmaster.pt/navegacao-abas-css-jquery-6408.html' rel='bookmark' title='Permanent Link: Navegação Em Abas Com CSS E jQuery'>Navegação Em Abas Com CSS E jQuery</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Herança PHP &#8211; Saiba O Básico Sobre Herança</title>
		<link>http://www.webmaster.pt/heranca-php-8644.html</link>
		<comments>http://www.webmaster.pt/heranca-php-8644.html#comments</comments>
		<pubDate>Tue, 17 Aug 2010 08:50:33 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[herança PHP]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=8644</guid>
		<description><![CDATA[Saiba o que é a Herança em PHP e como é que esse conceito se relaciona com o conceito de Classes.<p><a href="http://www.webmaster.pt/heranca-php-8644.html">Herança PHP &#8211; Saiba O Básico Sobre Herança</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/wordpress-paginas-parte2-6969.html' rel='bookmark' title='Permanent Link: WordPress – Saiba Tudo Sobre Páginas Parte 2'>WordPress – Saiba Tudo Sobre Páginas Parte 2</a></li>
<li><a href='http://www.webmaster.pt/wordpress-paginas-parte1-6749.html' rel='bookmark' title='Permanent Link: WordPress &#8211; Saiba Tudo Sobre Páginas Parte 1'>WordPress &#8211; Saiba Tudo Sobre Páginas Parte 1</a></li>
<li><a href='http://www.webmaster.pt/guerra-wordpress-licenca-gpl-7498.html' rel='bookmark' title='Permanent Link: Guerra No WordPress Sobre Licença GPL'>Guerra No WordPress Sobre Licença GPL</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Se você trabalha com o PHP ou qualquer outra linguagem de Programação dinâmica, investe ou vem estudando em classes, certamente já ouviu falar sobre herança.</p>
<p>Se você ainda não conhece mas quer ter um entendimento sobre este tipo de estrutura, mostraremos abaixo um exemplo básico que certamente lhe trará um entendimento sobre este tipo de estrutura.</p>
<h2>Saiba Mais Sobre Classes</h2>
<p>Se você ainda não trabalhou com classe, saiba que elas lhe ajudam e tornam seu script mais funcional e prático!</p>
<p>Um objeto definido indica que propriedades e funcionalidades têm e estas declarações são constituidas como uma uma classe.</p>
<p>Por exemplo:</p>
<p>Um carro poderia ter como propriedades: </p>
<ul>
<li>a montadora,</li>
<li>o nome,</li>
<li>o ano em que foi criado,</li>
<li>podería andar,</li>
<li>fazer várias coisas.</li>
</ul>
<p>Vamos dar um exemplo prático a nível de script?</p>
<p><pre><code><br />
<br />
class carro{<br />
var $nome;<br />
var $ano;<br />
<br />
function andar($trajeto){<br />
//aqui o código do método<br />
}<br />
<br />
} <br />
<br />
</code></pre></p>
<p>OBS.: Caso fossemos investir na classe andar, iríamos escolher o trajeto, limite de velocidade, entre várias outras coisas.</p>
<h2>O Que Tem Haver A Herança?</h2>
<p>Havíamos falado acima sobre a classe carro, correto?</p>
<p>Ele dispõe de vários elementos, tais como: Peças internas e externas, documentos, entre várias outras coisas.</p>
<p>Vamos a um exemplo prático falando sobre as peças?</p>
<p><pre><code><br />
class pecas extends conteudo{<br />
<br />
&nbsp;&nbsp;function Caixa_tematica($altura=1, largura=1, $cor=&quot;preto&quot;, $descricao=&quot;Não Informou&quot;){<br />
&nbsp;&nbsp; parent::Caixa($altura,$grossura,$largura,$cor);<br />
&nbsp;&nbsp; $this-&gt;tema=$tema;<br />
&nbsp;&nbsp;} <br />
}<br />
</code></pre></p>
<p>OBS.: No script acima informamos ao sistema que está sendo gerada a classe pecas e que vai herdar (através do &#8220;extends&#8221;) informações da classe conteudo.</p>
<p>Logo abaixo criamos uma função prática que trás informações como: altura, largura, cor e descrição.</p>
<p>Bem&#8230; este é o princípio básico de como podemos trabalhar com herança!</p>
<p>Hoje não disponibilizaremos um script em anexo; porém, nas próximas edições traremos funções exclusivas em sistemas que criaremos.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/php.jpeg" alt="php" title="php" width="107" height="77" class="aligncenter size-full wp-image-8647" />
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/heranca-php-8644.html">Herança PHP &#8211; Saiba O Básico Sobre Herança</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;t=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;title=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a&amp;notes=Saiba%20o%20que%20%C3%A9%20a%20Heran%C3%A7a%20em%20PHP%20e%20como%20%C3%A9%20que%20esse%20conceito%20se%20relaciona%20com%20o%20conceito%20de%20Classes." title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;title=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a&amp;bodytext=Saiba%20o%20que%20%C3%A9%20a%20Heran%C3%A7a%20em%20PHP%20e%20como%20%C3%A9%20que%20esse%20conceito%20se%20relaciona%20com%20o%20conceito%20de%20Classes." title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;title=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;title=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fheranca-php-8644.html&amp;title=Heran%C3%A7a%20PHP%20-%20Saiba%20O%20B%C3%A1sico%20Sobre%20Heran%C3%A7a" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/wordpress-paginas-parte2-6969.html' rel='bookmark' title='Permanent Link: WordPress – Saiba Tudo Sobre Páginas Parte 2'>WordPress – Saiba Tudo Sobre Páginas Parte 2</a></li>
<li><a href='http://www.webmaster.pt/wordpress-paginas-parte1-6749.html' rel='bookmark' title='Permanent Link: WordPress &#8211; Saiba Tudo Sobre Páginas Parte 1'>WordPress &#8211; Saiba Tudo Sobre Páginas Parte 1</a></li>
<li><a href='http://www.webmaster.pt/guerra-wordpress-licenca-gpl-7498.html' rel='bookmark' title='Permanent Link: Guerra No WordPress Sobre Licença GPL'>Guerra No WordPress Sobre Licença GPL</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/heranca-php-8644.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Sistema De Comentários AJAX Com Suporte Gravatar</title>
		<link>http://www.webmaster.pt/sistema-comentarios-ajax-suporte-gravatar-8303.html</link>
		<comments>http://www.webmaster.pt/sistema-comentarios-ajax-suporte-gravatar-8303.html#comments</comments>
		<pubDate>Mon, 16 Aug 2010 10:13:54 +0000</pubDate>
		<dc:creator>Zeeshan Rasool</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[comentarios AJAX]]></category>
		<category><![CDATA[comentarios PHP]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[sistema comentarios AJAX]]></category>
		<category><![CDATA[sistema comentarios PHP]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=8303</guid>
		<description><![CDATA[Aprenda a criar um Super sistema de comentários em AJAX, com suporte para Gravatar. Inclui o código para download. É fácil de implementar no seu site. <p><a href="http://www.webmaster.pt/sistema-comentarios-ajax-suporte-gravatar-8303.html">Super Sistema De Comentários AJAX Com Suporte Gravatar</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/script-suporte-php-mysql-6174.html' rel='bookmark' title='Permanent Link: Script De Suporte PHP MySQL'>Script De Suporte PHP MySQL</a></li>
<li><a href='http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html' rel='bookmark' title='Permanent Link: Rating System Original Em AJAX &#8211; JQuery E PHP'>Rating System Original Em AJAX &#8211; JQuery E PHP</a></li>
<li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte1'>Como Criar Sistema De O.S. / Orçamentos Parte1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-8304 aligncenter" src="http://www.webmaster.pt/wp-content/uploads/2010/08/ajax.jpg" alt="" width="555" height="506" /></p>
<p>Veja aqui uma <a href="http://phpwebmaster.org/demos/ajax_comments_system/" target="_blank">DEMO deste sistema de comentários em AJAX</a>.</p>
<p>Um sistema de comentários é uma necessidade básica para qualquer site que precise de dar liberdade aos visitantes e usuários de escreverem o que pensam e sentem sobre o site.</p>
<p>Você poderá encontrar muitos sistemas de comentários já prontos a usar, mas é difícil encontrar exactamente o que precisamos.</p>
<p>O sistema de comentários que apresento é simples ao nível do código, mas é um sistema de comentários avançado em AJAX, criado com jQuery e PHP.</p>
<p>Uma funcionalidade fantástica que adicionei ao sistema de comentários é o suporte para Gravatar.</p>
<p>Se você tem conta no <a href="http://www.gravatar.com" target="_blank">Gravatar</a> e submeter um comentário na nossa demo, o seu Avatar irá aparecer.</p>
<p>Por defeito, irá aparecer uma imagem azul.</p>
<p>Vamos então à explicação do código sobre este sistema de comentários:</p>
<h2>Estrutura Da Base De Dados MySQL</h2>
<p><pre><code><br />
CREATE TABLE IF NOT EXISTS `comments` (<br />
`c_id` int(11) NOT NULL AUTO_INCREMENT,<br />
`name` varchar(100) NOT NULL,<br />
`email` varchar(100) NOT NULL,<br />
`url` varchar(200) NOT NULL,<br />
`date_created` datetime NOT NULL,<br />
`comment` text NOT NULL,<br />
`post_id` int(11) NOT NULL,<br />
PRIMARY KEY (`c_id`)<br />
)<br />
</code></pre></p>
<p>Você apenas precisa duma tabela para guardar os comentários. Quero apenas mencionar uma coisa a respeito do post_id. Trata-se do ID dos comentários que vão sendo adicionados. Incialmente, coloquei id=1. Você poderá alterar este valor conforme o número de comentários já existentes.</p>
<h2>Código jQuery</h2>
<p>Este código irá altera a cor dos campos do formulário para amarelo, caso haja uma submissão com o campo do NOME vazio, dado que é necessário preencher o campo do NOME.</p>
<p><pre><code><br />
$(‘#Send’).click(function() {<br />
// name validation<br />
var nameVal = $(“#name”).val();<br />
if(nameVal == ”)<br />
{<br />
$(“#name”).css(“background-color”, ‘#FFFFCC’);<br />
return false<br />
}<br />
else<br />
{<br />
$(“#name”).css(“background-color”, ”);<br />
}<br />
</code></pre></p>
<p>Também criei uma expressão regex para validar o input do email. Se não for validado, irá também alterar a cor do campo do email para amarelo.</p>
<p><pre><code><br />
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;<br />
var emailaddressVal = $(“#email”).val();<br />
<br />
if(emailaddressVal == ”)<br />
{<br />
$(“#email”).css(“background-color”, ‘#FFFFCC’);<br />
return false;<br />
}<br />
else if(!emailReg.test(emailaddressVal))<br />
{<br />
$(“#email”).css(“background-color”, ‘#FFFFCC’);<br />
return false;<br />
}<br />
else<br />
{<br />
$(“#email”).css(“background-color”, ”);<br />
}<br />
</code></pre></p>
<p>Código para validar o URL do website:</p>
<p><pre><code><br />
var urlVal= $(“#url”).val();<br />
<br />
if(urlVal != ”)<br />
{<br />
if(!isUrl(urlVal))<br />
{<br />
$(“#url”).css(“background-color”, ‘#FFFFCC’);<br />
return false;<br />
}<br />
else<br />
{<br />
$(“#url”).css(“background-color”, ”);<br />
}<br />
}<br />
</code></pre></p>
<p>Portanto, se todas as verificações forem validadas, o próximo passo é submeter os comentários para post.php. #MYFORM é o form ID e vamos enviar os valores do formulário através da função jQuery Serialize.</p>
<p>Esta função submete todos os valores do fomrulário para o ficheiro da action em vez de enviar cada valor um a um. </p>
<p>Depois de submeter o comentário, vamos buscar o último comentário inserido e adicioná-lo ao sistema de comentários usando a função do jQuery append().</p>
<p><pre><code><br />
$.post(“posts.php?”+$(“#MYFORM”).serialize(), {<br />
<br />
}, function(response){<br />
<br />
$(“#loader”).hide();<br />
$(“#after_submit”).html(”);<br />
$(“#div-comments”).append(response);<br />
$(“#Send”).after(‘&lt;label id=”after_submit”&gt;Your comment has been submitted.&lt;/label&gt;’);<br />
clear_form();<br />
<br />
});<br />
</code></pre></p>
<p>Esta função é para validar o URL:</p>
<p><pre><code><br />
function isUrl(s) {<br />
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&amp;%@!\-\/]))?/<br />
return regexp.test(s);<br />
}<br />
</code></pre></p>
<p>Depois de submeter o comentário, vamos limpar os campos do formulário:</p>
<p><pre><code><br />
{<br />
$(“#name”).val(”);<br />
$(“#email”).val(”);<br />
$(“#url”).val(”);<br />
$(“#message”).val(”);<br />
}<br />
</code></pre></p>
<p>Este é o código HTML do formulário:</p>
<p><pre><code><br />
&lt;form action=”#” name=”MYFORM” id=”MYFORM”&gt;<br />
<br />
&lt;label&gt;Name&lt;/label&gt;<br />
&lt;label&gt;Email&lt;/label&gt;<br />
&lt;label&gt;URL&lt;/label&gt;<br />
<br />
&lt;br clear=”all” /&gt;<br />
<br />
&lt;input name=”name” size=”30″ type=”text” id=”name”&gt;<br />
&lt;input name=”email” size=”30″ type=”text” id=”email”&gt;<br />
&lt;input name=”url” size=”30″ type=”text” id=”url”&gt;<br />
<br />
&lt;br clear=”all” /&gt;&lt;br clear=”all” /&gt;<br />
<br />
&lt;label&gt;Comment&lt;/label&gt;<br />
&lt;br clear=”all” /&gt;<br />
<br />
&lt;textarea id=”message” name=”message”&gt;&lt;/textarea&gt;<br />
<br />
&lt;br clear=”all” /&gt;&lt;br clear=”all” /&gt;<br />
&lt;input type=”hidden” name=”post_id” id=”post_id” value=”1″&gt;<br />
&lt;input value=”Add Comment” type=”submit” id=”Send”&gt;<br />
<br />
&lt;/form&gt;<br />
</code></pre></p>
<p>O ficheiro post.php vai inserir o comentário na base de dados e buscar o último comentário para que seja adicionar ao sistema de comentários como último comentário.</p>
<p>Usei clickable_link() para buscar os links do texto do comentário e para que seja possível clicar nesses links.</p>
<p><pre><code><br />
&lt;?php<br />
<br />
function clickable_link($text = ”)<br />
{<br />
$text = preg_replace(‘#(script|about|applet|activex|chrome):#is’, “\\1:”, $text);<br />
$ret = ‘ ‘ . $text;<br />
$ret = preg_replace(“#(^|[\n ])([\w]+?://[\w\#$%&amp;~/.\-;:=,?@\[\]+]*)#is”, “\\1&lt;a href=\”\\2\” target=\”_blank\” rel=\”no_follow\”&gt;\\2&lt;/a&gt;”, $ret);<br />
<br />
$ret = preg_replace(“#(^|[\n ])((www|ftp)\.[\w\#$%&amp;~/.\-;:=,?@\[\]+]*)#is”, “\\1&lt;a href=\”http://\\2\” target=\”_blank\”&gt;\\2&lt;/a&gt;”, $ret);<br />
$ret = preg_replace(“#(^|[\n ])([a-z0-9&amp;\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i”, “\\1&lt;a href=\”mailto:\\2@\\3\”&gt;\\2@\\3&lt;/a&gt;”, $ret);<br />
$ret = substr($ret, 1);<br />
return $ret;<br />
}?&gt;<br />
</code></pre></p>
<p>Depois de gravar o comentário na base de dados e de verificar qual foi o último comentário adicionado à base de dados, vamos usar este código para adicionar esse último comentário ao sistema de comentários:</p>
<p><pre><code><br />
&lt;?php<br />
<br />
while ($row = mysql_fetch_array($result))<br />
{?&gt;<br />
&lt;div&gt;<br />
&lt;?php<br />
$strEmail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= ”;<br />
$gravtar_url = ”;<br />
<br />
$strEmail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $row[&#039;email&#039;];<br />
$gravtar_url = GetGravatarURL($strEmail,100);<br />
<br />
echo ‘&lt;img width=”80″ height=”80″ src=”‘.$gravtar_url.’”&nbsp;&nbsp;alt=”&quot;&gt;’;?&gt;<br />
<br />
&lt;div&gt;<br />
&lt;?php<br />
if($row[&#039;url&#039;]){?&gt;<br />
&lt;a rel=”external nofollow” href=”&lt;?php echo $row[&#039;url&#039;];?&gt;” target=”blank”&gt;&lt;b&gt;&lt;?php echo $row[&#039;name&#039;];?&gt;&lt;/b&gt;&lt;/a&gt;<br />
&lt;?php<br />
}<br />
else<br />
{<br />
echo ‘&lt;b&gt;’.$row[&#039;name&#039;].’&lt;/b&gt;’;<br />
}?&gt; says:<br />
&lt;div&gt;<br />
&lt;?php echo $row[&#039;date_created&#039;];?&gt;<br />
&lt;/div&gt;<br />
<br />
&lt;p&gt;&lt;?php echo $row[&#039;comment&#039;];?&gt;&lt;/p&gt;<br />
<br />
&lt;/div&gt;<br />
&lt;br clear=”all” /&gt;<br />
&lt;/div&gt;<br />
<br />
&lt;?php<br />
}?&gt;<br />
</code></pre></p>
<p>Portanto, aqui está um sistema de comentários sofistifado com suporte para Gravatar. Espero que gostem. Por favor, comentem sobre o tutorial. Façam o download dos ficheiros do código e usem este script fantástico!</p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/sistema_comentarios.zip'>Super Sistema De Comentários AJAX Com Suporte Gravatar</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/sistema-comentarios-ajax-suporte-gravatar-8303.html">Super Sistema De Comentários AJAX Com Suporte Gravatar</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;t=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;title=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar&amp;notes=Aprenda%20a%20criar%20um%20Super%20sistema%20de%20coment%C3%A1rios%20em%20AJAX%2C%20com%20suporte%20para%20Gravatar.%20Inclui%20o%20c%C3%B3digo%20para%20download.%20%C3%89%20f%C3%A1cil%20de%20implementar%20no%20seu%20site.%20" title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;title=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar&amp;bodytext=Aprenda%20a%20criar%20um%20Super%20sistema%20de%20coment%C3%A1rios%20em%20AJAX%2C%20com%20suporte%20para%20Gravatar.%20Inclui%20o%20c%C3%B3digo%20para%20download.%20%C3%89%20f%C3%A1cil%20de%20implementar%20no%20seu%20site.%20" title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;title=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;title=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fsistema-comentarios-ajax-suporte-gravatar-8303.html&amp;title=Super%20Sistema%20De%20Coment%C3%A1rios%20AJAX%20Com%20Suporte%20Gravatar" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/script-suporte-php-mysql-6174.html' rel='bookmark' title='Permanent Link: Script De Suporte PHP MySQL'>Script De Suporte PHP MySQL</a></li>
<li><a href='http://www.webmaster.pt/rating-system-ajax-jquery-php-8907.html' rel='bookmark' title='Permanent Link: Rating System Original Em AJAX &#8211; JQuery E PHP'>Rating System Original Em AJAX &#8211; JQuery E PHP</a></li>
<li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte1-9272.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte1'>Como Criar Sistema De O.S. / Orçamentos Parte1</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/sistema-comentarios-ajax-suporte-gravatar-8303.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adicionar Animação No Resultado Da Enquete / Votação</title>
		<link>http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html</link>
		<comments>http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html#comments</comments>
		<pubDate>Mon, 16 Aug 2010 08:50:59 +0000</pubDate>
		<dc:creator>Maicon Sobczak</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[enquete PHP]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[votacao PHP]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=8620</guid>
		<description><![CDATA[Aprenda a adicionar uma animação na apresentação do resultado da enquete, votação, sondagem. <p><a href="http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html">Adicionar Animação No Resultado Da Enquete / Votação</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/criar-enquete-votacao-php-8410.html' rel='bookmark' title='Permanent Link: Criar Enquete / Votação Com PHP'>Criar Enquete / Votação Com PHP</a></li>
<li><a href='http://www.webmaster.pt/sistema-votacoes-php-mysql-1048.html' rel='bookmark' title='Permanent Link: Sistema De Votações Em PHP E MySQL'>Sistema De Votações Em PHP E MySQL</a></li>
<li><a href='http://www.webmaster.pt/wordpress-adicionar-posts-4-midias-4263.html' rel='bookmark' title='Permanent Link: WordPress – Adicionar Posts 4 Mídias'>WordPress – Adicionar Posts 4 Mídias</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Na primeira parte do tutorial sobre a criação de uma enquete você viu como arquitetar o código PHP: <a href="http://www.webmaster.pt/criar-enquete-votacao-php-8410.html">Criar Enquete / Votação Com PHP</a>. Neste, veremos como adicionar efeitos na apresentação do resultado da enquete. Será um efeito em que a barra parte da largura zero e desliza para a direita.</p>
<p>Utilizaremos também um pequeno plugin jQuery para trabalhar com cookies e com isso verificar se o visitante já votou na enquete anteriormente.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem023.jpg" alt="animação resultado enquete" title="animação resultado enquete" width="600" height="217" class="aligncenter size-full wp-image-8622" /></p>
<h2>Importação Dos Arquivos</h2>
<p>No cabeçalho da página da enquete, importe os seguintes arquivos.</p>
<p><pre><code><br />
<br />
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;estilo.css&quot; /&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js&quot;&gt;&lt;/script&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;jcookie.js&quot;&gt;&lt;/script&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;javascript.js&quot;&gt;&lt;/script&gt;<br />
<br />
</code></pre></p>
<p>Pelo nome você já deve ter entendido o propósito de cada um. Quanto ao “jcookie.js” você encontra o arquivo para download neste endereço (http://plugins.jquery.com/project/jCookie). Ou ao final do tutorial juntamente com todos os arquivos.</p>
<h2>A Estrutura</h2>
<p>Todos os elementos usados para apresentar o resultado da enquete serão inseridos via javascript. Isso significa que você não verá nenhum deles clicando em Exibir – Código Fonte.</p>
<p>Para facilitar o entendimento e evitar um exercício de imaginação quando chegarmos na parte da estilização, veja a estrutura definida:</p>
<p><pre><code><br />
<br />
&lt;div class=”resultado-enquete”&gt;<br />
&nbsp;&nbsp;&lt;h2&gt;Resultado parcial da enquete&lt;/h2&gt;<br />
<br />
&nbsp;&nbsp;&lt;div&gt;&lt;p&gt;100%&lt;/p&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;div&gt;&lt;p&gt;100%&lt;/p&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;div&gt;&lt;p&gt;100%&lt;/p&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;p&gt;Total de votos: 100&lt;/p&gt;<br />
&lt;/div&gt;<br />
<br />
</code></pre></p>
<p>Uma estrutura sem dúvida simples, sendo que os valores são apenas demonstrativos. Veja que o resultado de cada opção será mostrado dentro da barra.</p>
<h2>Estilização</h2>
<p>Vamos definir a aparência e posicionamento dos elementos responsáveis pela apresentação do resultado.</p>
<p><pre><code><br />
<br />
.resultado-enquete{<br />
width:300px; <br />
height:auto; <br />
background:#eaeaea; <br />
display:none;<br />
position:absolute; <br />
float:none; <br />
left:50%; <br />
margin-left:-150px; }<br />
<br />
.resultado-enquete div{<br />
height:auto; <br />
width:0; <br />
background:#333; <br />
margin:10px; <br />
color:#fff; <br />
font-weight:bold;}<br />
<br />
.resultado-enquete div p, h1{text-shadow:1px 1px 3px #333;}<br />
<br />
</code></pre></p>
<p>A div que engloba todos os elementos do resultado é a primeira estilizada. Ela possue uma largura definida, mas ajusta a altura conforme o conteúdo. As últimas quatro propriedades servem para centralizar a div.</p>
<p>Em seguida definimos a aparência das divs que conterão os valores em porcentagem. O detalhe fica por conta da largura (width) zero. É preciso para que o efeito de aumento da largura parta da esquerda em direção á direita.</p>
<p>Por último é aplicada uma sombra no texto para melhorar o contraste.</p>
<h2>As Primeiras Verificações</h2>
<p>No arquivo javascript definimos que o código será iniciado quando o formulário for submetido.</p>
<p><pre><code><br />
<br />
$(function(){<br />
&nbsp;&nbsp;$(&#039;#form_enquete&#039;).submit(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;var cookie = $.cookie(&quot;enquete_php&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (cookie==null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//código<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&quot;Você já votou nesta enquete hoje.&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return false;&nbsp;&nbsp;&nbsp;&nbsp;<br />
})<br />
<br />
})<br />
<br />
</code></pre></p>
<p>O plugin que nós importamos para trabalhar com cookies é referenciado chamando “$.cookie()”. Então criamos uma variável de nome sugestivo e populamos com o conteúdo do cookie chamado “enquete_php”.</p>
<p>Você há de me perguntar onde diabos foi criado este cookie para estarmos trabalhando com ele. Ele é criado no arquivo PHP e populado com o ip do usuário. Como os cookies não são variáveis, mas arquivos, ele pode ser acessado por qualquer linguagem. </p>
<p>No arquivo PHP ele é definido para durar 24 horas. Sabendo disso, a única verificação que precisamos realizar é saber se ele contém algum valor. Pois se for desta maneira, ele ainda existe. Se este for o caso, é lançado na tela um alerta informando sobre a tentativa de votação e o código acaba.</p>
<p>Por outro lado, se o arquivo não possue conteúdo, então não existe, o código prossegue para que o voto seja computado.</p>
<h2>Um Vai, Outro Vem</h2>
<p>Mais uma verificação e iniciamos as animações.</p>
<p><pre><code><br />
<br />
var opcao = $(&quot;input[name=&#039;opcao&#039;]:checked&quot;).length;<br />
if (opcao&gt;0)<br />
{<br />
$(&#039;#enquete&#039;).fadeOut().before(&#039;&lt;div class=&quot;resultado-enquete&quot;&gt;&lt;h2&gt;Resultado parcial da enquete&lt;/h2&gt;&lt;/div&gt;&#039;);<br />
&nbsp;&nbsp;$(&#039;.resultado-enquete&#039;).fadeIn();<br />
} else {<br />
&nbsp;&nbsp;alert(&quot;Você precisa escolher uma das opções.&quot;);<br />
}<br />
<br />
</code></pre></p>
<p>Na primeira linha, criamos uma variável para receber o número de checkboxes com o nome “opção” que estão selecionadas.</p>
<p>Se o número armazenado é maior do que zero, significa que foi escolhida uma opção. Então a enquete desaparece e é inserido imediatamente antes desta enquete o código da div que contém os resultados da enquete. Mas até o momento a div não esta visível porque definimos que não seria no código CSS. Sendo assim, na linha de baixo ela é mostrada com um efeito.</p>
<p>Se o número da variável “opção” não for maior do que zero, sendo assim nenhuma das opções foi escolhida, é mostrado um alerta na tela e nada disso acontece.</p>
<h2>Efeito No Resultado</h2>
<p>Logo abaixo da linha que mostra a div com os resultados, entra este código:</p>
<p><pre><code><br />
<br />
$.post(&quot;grava-enquete.php&quot;, $(this).serialize(), function(retorno){<br />
<br />
var total_votos = parseInt(retorno.op01_n) + parseInt(retorno.op02_n) + parseInt(retorno.op03_n);<br />
<br />
var porcento1 = Math.round(retorno.op01_n / total_votos * 100);<br />
var porcento2 = Math.round(retorno.op02_n / total_votos * 100);<br />
var porcento3 = Math.round(retorno.op03_n / total_votos * 100);<br />
<br />
var resultado = &#039;&lt;div&gt;&lt;p&gt;&#039; + retorno.op01 + &#039; - &#039; + porcento1 +&#039;%&lt;/p&gt;&lt;/div&gt;&#039;;<br />
resultado += &#039;&lt;div&gt;&lt;p&gt;&#039; + retorno.op02 + &#039; - &#039; + porcento2 +&#039;%&lt;/p&gt;&lt;/div&gt;&#039;;<br />
resultado += &#039;&lt;div&gt;&lt;p&gt;&#039; + retorno.op03 + &#039; - &#039; + porcento3 +&#039;%&lt;/p&gt;&lt;/div&gt;&#039;;<br />
<br />
$(&#039;.resultado-enquete&#039;).append(resultado);<br />
<br />
$(&#039;.resultado-enquete div&#039;).eq(0).animate({width: retorno.op01_n +&quot;px&quot;}, &#039;slow&#039;); <br />
$(&#039;.resultado-enquete div&#039;).eq(1).animate({width: retorno.op02_n +&quot;px&quot;}, &#039;slow&#039;); <br />
$(&#039;.resultado-enquete div&#039;).eq(2).animate({width: retorno.op03_n +&quot;px&quot;}, &#039;slow&#039;); <br />
<br />
$(&#039;.resultado-enquete&#039;).append(&quot;&lt;p&gt;Total de votos: &quot; + total_votos + &quot;&lt;/p&gt;&quot;);<br />
&nbsp;&nbsp;<br />
}, &quot;json&quot;)<br />
<br />
</code></pre></p>
<p>É feita uma requisição POST ao arquivo responsável pela gravação do voto. Antes de enviados, estes dados são serializados com a função serialize(), que simplesmente formata os dados para envio. Isto evita a necessidade de armazenar em uma variável o valor selecionado e passá-la para a função.</p>
<p>Pule para a última linha e veja que o formato dos dados a serem retornado é JSON. Se você ainda não conhece este formato, acesse a página do JSON( http://www.json.org/json-pt.html).</p>
<p>Voltando á primeira linha, a resposta desta submissão é armazenada na variável “retorno”. Simplificando, as variáveis retornadas são:</p>
<p>pergunta – a pergunta da enquete.<br />
op01, op02, op03 – as opções da enquete.<br />
op01_n, op02_n, op03_n – o número de votos das respectivas opções.</p>
<p>Para acessar os valores, basta colocar “retorno.nomedavariavel”. A primeira ação feita com a resposta é a soma dos votos de cada opção. O parseInt() transforma uma string de texto em um numeral inteiro. Sem esta função os números seriam apenas concatenados ao invés de somados.</p>
<p>Nas três linhas seguintes são feitos os cálculos para obter o valor percentual de cada opção e utilizado o Math.round() para arredondar o resultado.</p>
<p>A variável “resultado” recebe as porcentagens e a opção encapsuladas pelas divs e parágrafos e no final este código é anexado à div “resultado-enquete”. Neste momento já estão visíveis os dados de cada opção, mas as barras (formada pelas divs) ainda não, já que definimos na folha de estilo a largura  delas como zero.</p>
<p>Para encontrar a div certa a ser animada, utilizamos como elemento chave o seletor eq(), que permite selecionar um elemento conforme sua posição no código. Acabaram de ser anexadas três divs com os valores. Lembra? Cada uma correspondendo a uma opção e valor. Então para selecionar a primeira div, o código fica:</p>
<p><pre><code><br />
<br />
$(&#039;.resultado-enquete div&#039;).eq(0); <br />
<br />
</code></pre></p>
<p>Isso mesmo, a contagem começa do zero.</p>
<p>Utilizando o método animate(), é feita a animação da largura (width) do elemento com o valor a ser alcançado definido pelo número de votos em pixels.</p>
<p>Para finalizar é anexado o total de votos.</p>
<h2>Conclusão</h2>
<p>Neste tutorial foi apresentado o código básico para uma apresentação mais interessante dos dados. Você pode adicionar novas funcionalidades e torná-lo ainda melhor. Que tal apresentar as barras na vertical?</p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/enquete_animacao.zip'>Adicionar Animação No Resultado Da Enquete / Votação</a></p>
<p>Download do código completo dos 2 tutoriais: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/enquete_completa.zip'>Criar Enquete / Votação Com PHP</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html">Adicionar Animação No Resultado Da Enquete / Votação</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;t=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;title=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o&amp;notes=Aprenda%20a%20adicionar%20uma%20anima%C3%A7%C3%A3o%20na%20apresenta%C3%A7%C3%A3o%20do%20resultado%20da%20enquete%2C%20vota%C3%A7%C3%A3o%2C%20sondagem.%20" title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;title=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o&amp;bodytext=Aprenda%20a%20adicionar%20uma%20anima%C3%A7%C3%A3o%20na%20apresenta%C3%A7%C3%A3o%20do%20resultado%20da%20enquete%2C%20vota%C3%A7%C3%A3o%2C%20sondagem.%20" title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;title=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;title=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fadicionar-animacao-resultado-enquete-8620.html&amp;title=Adicionar%20Anima%C3%A7%C3%A3o%20No%20Resultado%20Da%20Enquete%20%2F%20Vota%C3%A7%C3%A3o" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/criar-enquete-votacao-php-8410.html' rel='bookmark' title='Permanent Link: Criar Enquete / Votação Com PHP'>Criar Enquete / Votação Com PHP</a></li>
<li><a href='http://www.webmaster.pt/sistema-votacoes-php-mysql-1048.html' rel='bookmark' title='Permanent Link: Sistema De Votações Em PHP E MySQL'>Sistema De Votações Em PHP E MySQL</a></li>
<li><a href='http://www.webmaster.pt/wordpress-adicionar-posts-4-midias-4263.html' rel='bookmark' title='Permanent Link: WordPress – Adicionar Posts 4 Mídias'>WordPress – Adicionar Posts 4 Mídias</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Criar Enquete / Votação Com PHP</title>
		<link>http://www.webmaster.pt/criar-enquete-votacao-php-8410.html</link>
		<comments>http://www.webmaster.pt/criar-enquete-votacao-php-8410.html#comments</comments>
		<pubDate>Thu, 12 Aug 2010 09:15:15 +0000</pubDate>
		<dc:creator>Maicon Sobczak</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[enquete PHP]]></category>
		<category><![CDATA[votacao PHP]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=8410</guid>
		<description><![CDATA[Aprenda a criar uma enquete (votação ou sondagem) com o PHP para o seu website ou blog.<p><a href="http://www.webmaster.pt/criar-enquete-votacao-php-8410.html">Criar Enquete / Votação Com PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html' rel='bookmark' title='Permanent Link: Adicionar Animação No Resultado Da Enquete / Votação'>Adicionar Animação No Resultado Da Enquete / Votação</a></li>
<li><a href='http://www.webmaster.pt/como-criar-rss-feed-6376.html' rel='bookmark' title='Permanent Link: Como Criar Um RSS Feed No Seu Site'>Como Criar Um RSS Feed No Seu Site</a></li>
<li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte2'>Como Criar Sistema De O.S. / Orçamentos Parte2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Uma das formas mais comuns de engajar o usuário na utilização do website é adicionar uma pergunta, de preferência polêmica, e disponibilizar duas ou três opções de resposta.</p>
<p>Neste primeiro tutorial, <strong>vou explicar somente a parte PHP da criação da enquete</strong>, o server-side. No próximo tutorial explicarei como apresentar o resultado de forma agradável e dinâmica utilizando o javascript.</p>
<p>O cadastro da pergunta e opções não será abordado neste tutorial por ser a parte mais simples. Vamos nos concentrar nos dados submetidos pelo usuário.</p>
<h2>Tabela MySQL</h2>
<p>Iniciamos criando os campos que receberão as informações.</p>
<p><pre><code><br />
<br />
CREATE TABLE EXISTS ‘enquete’ (<br />
&nbsp;&nbsp;‘id’ int(5) NOT NULL auto_increment,<br />
&nbsp;&nbsp;‘pergunta’ varchar(50) NOT NULL,<br />
&nbsp;&nbsp;‘op01’ char(32) NOT NULL,<br />
&nbsp;&nbsp;‘op01_n’ int(5) NOT NULL default &#039;0&#039;,<br />
&nbsp;&nbsp;‘op02’ char(32) NOT NULL,<br />
&nbsp;&nbsp;‘op02_n’ int(5) NOT NULL default &#039;0&#039;,<br />
&nbsp;&nbsp;‘op03’ char(32) NOT NULL,<br />
&nbsp;&nbsp;‘op03_n` int(5) NOT NULL default &#039;0&#039;,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(‘id’)<br />
) ENGINE=InnoDB&nbsp;&nbsp;DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;<br />
<br />
</code></pre></p>
<p>Precisamos de um campo para cadastrar a pergunta, um para cada opção de resposta e um para contabilizar o número de vezes que a opção foi escolhida.</p>
<p>Para agilizar o trabalho, após ter criado a tabela, você pode executar a linha abaixo, que adiciona uma pergunta e as opções.</p>
<p><pre><code><br />
<br />
INSERT INTO ‘enquete’ (‘id’, ‘pergunta’, ‘op01’, ‘op01_n’, ‘op02’, ‘op02_n’, ‘op03’, ‘op03_n’) VALUES<br />
(1, &#039;Qual linguagem de programação você utiliza?&#039;, &#039;PHP&#039;, 0, &#039;ASP&#039;,04, &#039;Java&#039;, 0);<br />
<br />
</code></pre></p>
<h2>Mostrando A Enquete</h2>
<p>Na tela será apresentada a enquete com as informações advindas do banco de dados.</p>
<p><pre><code><br />
<br />
&lt;?php<br />
&nbsp;&nbsp;mysql_connect(&quot;localhost&quot;, &quot;usuario&quot;, &quot;senha&quot;) or trigger_error(mysql_error(),E_USER_ERROR);<br />
&nbsp;&nbsp;mysql_select_db(&quot;bancodedados&quot;);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;$busca = mysql_query(&quot;SELECT * FROM enquete ORDER BY id DESC LIMIT 1&quot;) or die(mysql_error());<br />
&nbsp;&nbsp;if (mysql_num_rows($busca)&gt;0)<br />
&nbsp;&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$enquete = mysql_fetch_array($busca);<br />
&nbsp;&nbsp;&nbsp;&nbsp;extract($enquete);<br />
?&gt;<br />
<br />
&lt;p&gt;&lt;?php echo utf8_encode($pergunta);?&gt;&lt;/p&gt;<br />
<br />
&lt;form action=&quot;grava-enquete.php&quot; method=&quot;post&quot;&gt;<br />
&nbsp;&nbsp;&lt;input type=&quot;hidden&quot; name=&quot;id_pergunta&quot; value=&quot;&lt;?php echo $id;?&gt;&quot; /&gt;<br />
&nbsp;&nbsp;&lt;input type=&quot;radio&quot; name=&quot;opcao&quot; value=&quot;op01&quot; /&gt;&lt;?php echo $op01;?&gt;&lt;br /&gt;<br />
&nbsp;&nbsp;&lt;input type=&quot;radio&quot; name=&quot;opcao&quot; value=&quot;op02&quot; /&gt;&lt;?php echo $op02;?&gt;&lt;br /&gt;<br />
&nbsp;&nbsp;&lt;input type=&quot;radio&quot; name=&quot;opcao&quot; value=&quot;op03&quot; /&gt;&lt;?php echo $op03;?&gt;&lt;br /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot; name=&quot;enviar&quot; value=&quot;Enviar&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&lt;/form&gt;<br />
<br />
&lt;?php<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;exit (&#039;&lt;p&gt;Nenhuma enquete cadastrada.&lt;/p&gt;&#039;);<br />
&nbsp;&nbsp;}<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Como vamos trabalhar com banco de dados, precisamos fornecer as informações para efetuar a conexão. Quando for executar na sua máquina ou outro servidor este código, não esqueça de alterar as informações fornecidas no mysql_connect.</p>
<p>Em seguida é efetuada uma busca na tabela ‘<strong>enquete</strong>’ e selecionada a última linha. Por isso o “<strong>ORDER BY id DESC</strong>”. Como o campo ‘id’ é auto incrementável, o último registro será o maior.</p>
<p>Se for encontrado algum registro, sendo assim, maior do que zero, a variável “enquete” recebe uma array com os dados retornados pela busca. A linha de baixo é muito interessante. O <a href="http://br.php.net/manual/pt_BR/function.extract.php" target="_blank">extract</a> permite fazer referência às variáveis pelo nome da coluna na tabela de dados.</p>
<p>Desta forma, ao invés de utilizar “$enquete[‘op01’]” podemos utilizar “$op01”. </p>
<p>É mostrada a pergunta e criado o formulário com os valores retornados pela pesquisa. O arquivo que receberá os dados é o “grava-enquete.php” através do método POST.</p>
<p>Um detalhe a observar é o campo com o id da pergunta que esta escondido e será útil no código que grava a opção escolhida pelo visitante. Todos os input radio tem o mesmo nome, mas valores diferentes para que seja possível identificar a opção escolhida.</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem014-e1281604159800.jpg" alt="enquete PHP" title="enquete PHP" width="600" height="222" class="aligncenter size-full wp-image-8411" /></p>
<h2>Um Voto Por IP</h2>
<p>Todo desenvolvedor ao criar uma enquete tem a <strong>preocupação de não permitir que um mesmo visitante vote múltiplas vezes e desta forma manipule o resultado</strong>. A forma mais comum para evitar este problema é a utilização de cookies.</p>
<p>Os cookies são arquivos que contém alguns dados trocados entre o computador do usuário e o servidor Isso permite identificar o usuário. </p>
<p>A <a href="http://br.php.net/manual/pt_BR/function.setcookie.php" target="_blank">função setcookie</a> permite definir nome, dados e tempo de validade destes dados. </p>
<p><pre><code><br />
<br />
setcookie(&#039;enquete_php&#039;,$_SERVER[&#039;REMOTE_ADDR&#039;],time()+86400);<br />
<br />
</code></pre></p>
<p>Criamos um cookie com o nome ‘enquete_php’, que contém o endereço ip do usuário e que permanecerá no computador dele por 24 horas. O 86400 são os segundos que compõem o dia.</p>
<p>Antes que algum de vocês se levante para dizer que o cookie pode ser deletado pelo usuário, lembro que a maioria dos usuários nem sabe que eles existem. E os que sabem como deletar teriam que fazer isso para cada voto. E dificilmente uma enquete merece todo esse trabalho.</p>
<h2>Recebendo Os Dados</h2>
<p>O código somente executa se os dados estão completos e válidos.</p>
<p><pre><code><br />
<br />
if (isset($_COOKIE[&#039;enquete_php&#039;]))<br />
{<br />
&nbsp;&nbsp;exit (&#039;&lt;p&gt;Você já votou nesta enquete.&lt;/p&gt;&#039;.$_COOKIE[&#039;enquete_php&#039;]);&nbsp;&nbsp;<br />
} else {<br />
&nbsp;&nbsp;setcookie(&#039;enquete_php&#039;,$_SERVER[&#039;REMOTE_ADDR&#039;],time()+86400);<br />
&nbsp;&nbsp;$opcao = strip_tags($_POST[&#039;opcao&#039;]);<br />
&nbsp;&nbsp;$id_pergunta = $_POST[&#039;id_pergunta&#039;];<br />
&nbsp;&nbsp;$id_pergunta = filter_var($id_pergunta, FILTER_SANITIZE_NUMBER_INT);<br />
}<br />
<br />
</code></pre></p>
<p>Se um cookie com o nome “enquete_php” já estiver setado, isso significa que o usuário já votou nas últimas 24 horas. Informamos o usuário sobre isso ao mesmo tempo que paramos a execução naquele ponto. </p>
<p>Se o cookie ainda não foi criado, então isto é feito. Com o nome de “enquete_php”, o ip da máquina e válido por 24 horas.</p>
<p>A opção escolhida é recebida e tratada para evitar a tentativa de inserção de código. O id da pergunta também é tratado, mas de uma forma diferente.</p>
<h2>Adicionando O Voto</h2>
<p>Incluir diversas verificações durante a execução do código ajuda a evitar processamento desnecessário com dados incompletos. Por isso, garantimos que as variáveis que receberam a opção da enquete e o id da pergunta não estão vazias.</p>
<p>Todo o código abaixo é inserido dentro do else da verificação feita acima.</p>
<p><pre><code><br />
&nbsp;&nbsp;if ($id_pergunta!=&#039;&#039; and $opcao!=&#039;&#039;)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;mysql_connect(&quot;localhost&quot;, &quot;usuario&quot;, &quot;senha&quot;) or trigger_error(mysql_error(),E_USER_ERROR);<br />
&nbsp;&nbsp;mysql_select_db(&quot;bancodedados&quot;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;$consulta = mysql_query(&quot;SELECT * FROM enquete WHERE id=&#039;$id_pergunta&#039;&quot;) or die(mysql_error());<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (mysql_num_rows($consulta)&gt;0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query = mysql_fetch_array($consulta);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extract($query);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch($opcao)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &quot;op01&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$voto = $op01_n + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query(&quot;UPDATE enquete SET op01_n=&#039;$voto&#039; WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &quot;op02&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$voto = $op02_n + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query(&quot;UPDATE enquete SET op02_n=&#039;$voto&#039; WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &quot;op03&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$voto = $op03_n + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query(&quot;UPDATE enquete SET op03_n=&#039;$voto&#039; WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</code></pre></p>
<p>Se os dados foram preenchidos é feita a conexão com o banco de dados e realizada uma consulta que procura na tabela um campo de id que tenha o mesmo valor que o id da pergunta submetida.</p>
<p>A pesquisa retornando alguma linha da tabela, o resultado é extraído de maneira que possamos utilizar o nome das colunas como variáveis e estruturamos uma verificação.</p>
<p>Dentre as diversas declarações condicionais disponíveis, <strong>considero o switch a melhor quando necessário mais de duas comparações</strong>. No início da verificação fornecemos a informação que será comparada com as contidas nos case.</p>
<p>Se fechar com alguma delas, ao número de votos da opção é adicionado mais um. A linha da tabela é atualizada alterando o valor de votos da opção escolhida e a cadeia de verificação é quebrada. Pula para a continuação do código além da verificação. </p>
<h2>O Resultado Na Tela</h2>
<p>Com o voto adicionado é preciso apresentar ao visitante os resultados da enquete.</p>
<p><pre><code><br />
<br />
&nbsp;&nbsp;$busca_total = mysql_query(&quot;SELECT * FROM enquete WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;$resultado = mysql_fetch_array($busca_total);<br />
&nbsp;&nbsp;extract($resultado, EXTR_PREFIX_ALL, &#039;e&#039;);<br />
&nbsp;&nbsp;$total = $e_op01_n + $e_op02_n + $e_op03_n;<br />
&nbsp;&nbsp;echo &#039;&lt;p&gt;&lt;strong&gt;Obrigado por votar! Veja o resultado parcial:&lt;/strong&gt;&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_pergunta.&#039;&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_op01. &#039;: &#039;.$e_op01_n. &#039; votos&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_op02. &#039;: &#039;.$e_op02_n. &#039; votos&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_op03. &#039;: &#039;.$e_op03_n. &#039; votos&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;echo &#039;&lt;p&gt;Total de votos: &#039;.$total.&#039;&lt;/p&gt;&#039;;<br />
</code></pre></p>
<p>É feita uma busca pelos registros com a id da pergunta submetida e extraído o resultado. Como já utilizamos o extract anteriormente no código, para evitar problemas com as variáveis, é adicionado um prefixo nas variáveis extraídas.</p>
<p>Na linha seguinte é criada uma variável para receber a soma dos votos das três opções. Um agradecimento pelo voto é mostrado e segue a pergunta com as opções e os respectivos votos. Finalizando com o total de votos.</p>
<h2>Conclusão</h2>
<p>O código completo é este</p>
<p><pre><code><br />
<br />
&lt;?php<br />
if (isset($_COOKIE[&#039;enquete_php&#039;]))<br />
{<br />
&nbsp;&nbsp;exit (&#039;&lt;p&gt;Você já votou nesta enquete.&lt;/p&gt;&#039;.$_COOKIE[&#039;enquete_php&#039;]);&nbsp;&nbsp;&nbsp;&nbsp;<br />
} else {<br />
&nbsp;&nbsp;setcookie(&#039;enquete_php&#039;,$_SERVER[&#039;REMOTE_ADDR&#039;],time()+8640;<br />
&nbsp;&nbsp;$opcao = strip_tags($_POST[&#039;opcao&#039;]);<br />
&nbsp;&nbsp;$id_pergunta = $_POST[&#039;id_pergunta&#039;];<br />
&nbsp;&nbsp;$id_pergunta = filter_var($id_pergunta, FILTER_SANITIZE_NUMBER_INT);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;if ($id_pergunta!=&#039;&#039; and $opcao!=&#039;&#039;)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;include(&#039;db.php&#039;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;$consulta = mysql_query(&quot;SELECT * FROM enquete WHERE id=&#039;$id_pergunta&#039;&quot;) or die(mysql_error());<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (mysql_num_rows($consulta)&gt;0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query = mysql_fetch_array($consulta);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extract($query);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch($opcao)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &quot;op01&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$voto = $op01_n + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query(&quot;UPDATE enquete SET op01_n=&#039;$voto&#039; WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &quot;op02&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$voto = $op02_n + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query(&quot;UPDATE enquete SET op02_n=&#039;$voto&#039; WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &quot;op03&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$voto = $op03_n + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query(&quot;UPDATE enquete SET op03_n=&#039;$voto&#039; WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$busca_total = mysql_query(&quot;SELECT * FROM enquete WHERE id=&#039;$id_pergunta&#039;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$resultado = mysql_fetch_array($busca_total);<br />
&nbsp;&nbsp;&nbsp;&nbsp;extract($resultado, EXTR_PREFIX_ALL, &#039;e&#039;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;$total = $e_op01_n + $e_op02_n + $e_op03_n;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;p&gt;&lt;strong&gt;Obrigado por votar! Veja o resultado parcial:&lt;/strong&gt;&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_pergunta.&#039;&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_op01. &#039;: &#039;.$e_op01_n. &#039; votos&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_op02. &#039;: &#039;.$e_op02_n. &#039; votos&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;p&gt;&#039;.$e_op03. &#039;: &#039;.$e_op03_n. &#039; votos&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo &#039;&lt;p&gt;Total de votos: &#039;.$total.&#039;&lt;/p&gt;&#039;;<br />
&nbsp;&nbsp;}<br />
}<br />
?&gt;<br />
<br />
</code></pre></p>
<p>Aprenda a adicionar animação ao resultado da enquete neste tutorial: <a href="http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html">Adicionar Animação No Resultado Da Enquete / Votação</a></p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/enquete_php.zip'>Criar Enquete / Votação Com PHP</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/criar-enquete-votacao-php-8410.html">Criar Enquete / Votação Com PHP</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;t=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;title=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP&amp;notes=Aprenda%20a%20criar%20uma%20enquete%20%28vota%C3%A7%C3%A3o%20ou%20sondagem%29%20com%20o%20PHP%20para%20o%20seu%20website%20ou%20blog." title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;title=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP&amp;bodytext=Aprenda%20a%20criar%20uma%20enquete%20%28vota%C3%A7%C3%A3o%20ou%20sondagem%29%20com%20o%20PHP%20para%20o%20seu%20website%20ou%20blog." title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;title=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;title=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcriar-enquete-votacao-php-8410.html&amp;title=Criar%20Enquete%20%2F%20Vota%C3%A7%C3%A3o%20Com%20PHP" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/adicionar-animacao-resultado-enquete-8620.html' rel='bookmark' title='Permanent Link: Adicionar Animação No Resultado Da Enquete / Votação'>Adicionar Animação No Resultado Da Enquete / Votação</a></li>
<li><a href='http://www.webmaster.pt/como-criar-rss-feed-6376.html' rel='bookmark' title='Permanent Link: Como Criar Um RSS Feed No Seu Site'>Como Criar Um RSS Feed No Seu Site</a></li>
<li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte2'>Como Criar Sistema De O.S. / Orçamentos Parte2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/criar-enquete-votacao-php-8410.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Validar Formulário</title>
		<link>http://www.webmaster.pt/como-validar-formulario-8269.html</link>
		<comments>http://www.webmaster.pt/como-validar-formulario-8269.html#comments</comments>
		<pubDate>Thu, 12 Aug 2010 08:59:26 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[email validation]]></category>
		<category><![CDATA[form validation]]></category>
		<category><![CDATA[validar formulario]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=8269</guid>
		<description><![CDATA[Aprenda a validar a informação submetida nos seus formulários: codigo postal, data, email, telefone. <p><a href="http://www.webmaster.pt/como-validar-formulario-8269.html">Como Validar Formulário</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte2'>Como Criar Sistema De O.S. / Orçamentos Parte2</a></li>
<li><a href='http://www.webmaster.pt/senhas-criptografadas-7141.html' rel='bookmark' title='Permanent Link: Senhas Criptografadas &#8211; Como Gerar E Recuperar?'>Senhas Criptografadas &#8211; Como Gerar E Recuperar?</a></li>
<li><a href='http://www.webmaster.pt/como-criar-rss-feed-6376.html' rel='bookmark' title='Permanent Link: Como Criar Um RSS Feed No Seu Site'>Como Criar Um RSS Feed No Seu Site</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Se você vem acompanhando nossas matérias, certamente verá vários scripts interessantes que podem ser implementados em seu web site.</p>
<p>Um dos principais e indispensável é o validador, indispensável em qualquer formulário. </p>
<p>Imagine um web site que tem dezenas de cadastros diários?</p>
<p>Caso não tenha uma validação perfeita, acaba tendo problemas (entre eles recebimento de emails em formato inválido).</p>
<p>Na matéria de hoje, disponibilizaremos uma série de validações feitas individualmente. Caso queira testar os scripts, baixe o ficheiro disponível em anexo e faça os testes!</p>
<p><H2>Validando CEP</h2>
<p>O código abaixo valida o CEP informado através do método POST (conforme script abaixo).<br />
<pre><code><br />
&lt;?php<br />
<br />
// Validando CEP<br />
if($_POST[&#039;cep&#039;]){<br />
 <br />
if (!eregi(&quot;^[0-9]{5}-[0-9]{3}$&quot;, $_POST[&#039;cep&#039;])) {<br />
echo &quot;&lt;script language=\&quot;JavaScript\&quot;&gt;alert(&#039;CEP inválido !!!&#039;);&lt;/script&gt;&quot;;<br />
<br />
}else{<br />
echo &quot;O CEP $cep foi validado com sucesso!!!&quot;;<br />
<br />
}<br />
}<br />
?&gt;<br />
</code></pre></p>
<p>Onde informamos que o CEP foi validado com sucesso, tu poderá customizar de acordo com suas necessidades!</p>
<h2>Validando Data</h2>
<p>O código abaixo valida a Data informada através do método POST (conforme script abaixo).</p>
<p><pre><code><br />
&lt;?php<br />
<br />
// Validando Data<br />
if($_POST[&#039;data&#039;]){<br />
 <br />
if (!eregi(&quot;^[0-9]{2}/[0-9]{2}/[0-9]{4}$&quot;, $_POST[&#039;data&#039;])) {<br />
echo &quot;&lt;script language=\&quot;JavaScript\&quot;&gt;alert(&#039;Data inválida !!!&#039;);&lt;/script&gt;&quot;;<br />
<br />
}else{<br />
echo &quot;A Data $data foi validada com sucesso!!!&quot;;<br />
<br />
}<br />
}<br />
?&gt;<br />
</code></pre></p>
<p>Onde informamos que validação da Data foi efetuada com sucesso, tu poderá customizar de acordo com suas necessidades!</p>
<h2>Validando Endereço de EMail</h2>
<p>O código abaixo deverá validar o Endereço de Email informado através do método POST (conforme script abaixo).</p>
<p><pre><code><br />
&lt;?php<br />
<br />
// Validando o EMail<br />
if ($_POST[&#039;email&#039;]){<br />
 <br />
if (!eregi(&quot;^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$&quot;, $_POST[&#039;email&#039;])) {<br />
echo &quot;&lt;script language=\&quot;JavaScript\&quot;&gt;alert(&#039;Email inválido !!!&#039;);&lt;/script&gt;&quot;;<br />
<br />
}else{<br />
echo &quot;O EMail $email foi validado com sucesso!!!&quot;;<br />
<br />
}<br />
}<br />
?&gt;<br />
</code></pre></p>
<p>Onde informamos que validação do EMail foi efetuado com sucesso, tu poderá customizar de acordo com suas necessidades!</p>
<h2>Validando Telefones</h2>
<p>Abaixo temos 2 exemplos de validação de telefone.</p>
<p>Exemplo 01:</p>
<p><pre><code><br />
&lt;?php<br />
<br />
// Validando Telefone no Formato xxxx-xxxx<br />
if($_POST[&#039;telefone&#039;]){<br />
 <br />
if (!eregi(&quot;^[0-9]{4}-[0-9]{4}$&quot;, $_POST[&#039;telefone&#039;])) {<br />
echo &quot;&lt;script language=\&quot;JavaScript\&quot;&gt;alert(&#039;Telefone inválido !!!&#039;);&lt;/script&gt;&quot;;<br />
<br />
}else{<br />
echo &quot;O Telefone $telefone foi validado com sucesso!!!&quot;;<br />
<br />
}<br />
}<br />
?&gt;<br />
</code></pre></p>
<p>Exemplo 02:</p>
<p><pre><code><br />
&lt;?php<br />
<br />
// Validando Telefone no Formato (DDD) xxxx-xxxx<br />
if($_POST[&#039;telefone&#039;]){<br />
 <br />
if (!eregi(&quot;^\([0-9]{3}\) [0-9]{4}-[0-9]{4}$&quot;, $_POST[&#039;telefone&#039;])) {<br />
echo &quot;&lt;script language=\&quot;JavaScript\&quot;&gt;alert(&#039;Telefone inválido !!!&#039;);&lt;/script&gt;&quot;;<br />
<br />
}else{<br />
echo &quot;O Telefone $telefone foi validado com sucesso!!!&quot;;<br />
<br />
}<br />
}<br />
?&gt;<br />
</code></pre></p>
<p>Onde informamos que a validação do Telefone foi efetuada com sucesso, tu poderá customizar de acordo com suas necessidades!</p>
<h2>Validando Página</h2>
<p>Esse script é especial e necessário para quem é desenvolvedor web!</p>
<p>Imagine aquele sistema enorme que você produziu e deixou no Servidor de seu cliente?</p>
<p>Após receber o conteúdo ele vende ou fornece cópia para um &#8220;amigo&#8221; que quer uma solução similar!</p>
<p>Criptografando o código e colocando este conteúdo, você garantirá a segurança de suas informações!</p>
<p>Vamos dar uma olhada no código?</p>
<p><pre><code><br />
&lt;?<br />
<br />
// Valida a cópia do Sistema<br />
<br />
$server = $_SERVER[&#039;SERVER_NAME&#039;];<br />
$endereco = $_SERVER [&#039;REQUEST_URI&#039;];<br />
$url =&quot;http://&quot; . $server . $endereco;<br />
<br />
$url_certa = &quot;http://enderecodosite.com/&quot;;<br />
<br />
if($url != $url_certa) {<br />
<br />
echo &quot;&lt;script language=\&quot;JavaScript\&quot;&gt;alert(&#039;VOCÊ NÃO TEM LICENÇA PARA USAR ESTA LOJA - Entre em contato com o EMail email@seuemail.com.br para validar sua cópia.&#039;);&lt;/script&gt;&quot;;<br />
<br />
}else{<br />
<br />
echo &quot;COLOQUE AQUI O CÓDIGO DA PÁGINA&quot;;<br />
}<br />
<br />
?&gt;<br />
</code></pre></p>
<p>Bem&#8230; os scripts acima são básicos e podem ser melhorados com outros eventos em JavaScript, Ajax ou PHP.</p>
<p>Espero que as dicas acima e os ficheiros em anexo possam lhe ajudar em algo.</p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/ficheiros3.zip'>Como Validar Formulário</a></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/contactar.jpg" alt="contactar" title="contactar" width="600" height="584" class="aligncenter size-full wp-image-8408" />
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/como-validar-formulario-8269.html">Como Validar Formulário</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Como%20Validar%20Formul%C3%A1rio%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;t=Como%20Validar%20Formul%C3%A1rio" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;title=Como%20Validar%20Formul%C3%A1rio&amp;notes=Aprenda%20a%20validar%20a%20informa%C3%A7%C3%A3o%20submetida%20nos%20seus%20formul%C3%A1rios%3A%20codigo%20postal%2C%20data%2C%20email%2C%20telefone.%20" title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;title=Como%20Validar%20Formul%C3%A1rio&amp;bodytext=Aprenda%20a%20validar%20a%20informa%C3%A7%C3%A3o%20submetida%20nos%20seus%20formul%C3%A1rios%3A%20codigo%20postal%2C%20data%2C%20email%2C%20telefone.%20" title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;title=Como%20Validar%20Formul%C3%A1rio" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;title=Como%20Validar%20Formul%C3%A1rio" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fcomo-validar-formulario-8269.html&amp;title=Como%20Validar%20Formul%C3%A1rio" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/como-criar-sistema-o-s-orcamentos-parte2-9287.html' rel='bookmark' title='Permanent Link: Como Criar Sistema De O.S. / Orçamentos Parte2'>Como Criar Sistema De O.S. / Orçamentos Parte2</a></li>
<li><a href='http://www.webmaster.pt/senhas-criptografadas-7141.html' rel='bookmark' title='Permanent Link: Senhas Criptografadas &#8211; Como Gerar E Recuperar?'>Senhas Criptografadas &#8211; Como Gerar E Recuperar?</a></li>
<li><a href='http://www.webmaster.pt/como-criar-rss-feed-6376.html' rel='bookmark' title='Permanent Link: Como Criar Um RSS Feed No Seu Site'>Como Criar Um RSS Feed No Seu Site</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/como-validar-formulario-8269.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stored Procedure Com PHP E MySQL</title>
		<link>http://www.webmaster.pt/stored-procedure-php-mysql-7625.html</link>
		<comments>http://www.webmaster.pt/stored-procedure-php-mysql-7625.html#comments</comments>
		<pubDate>Tue, 10 Aug 2010 07:36:58 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Stored Procedure]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=7625</guid>
		<description><![CDATA[A Stored Procedure é um conjunto de comandos SQL que permitem trabalhar tarefas repetitivas. Saiba como trabalhar com Stored Procedure.<p><a href="http://www.webmaster.pt/stored-procedure-php-mysql-7625.html">Stored Procedure Com PHP E MySQL</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/mssql-criptografia-2179.html' rel='bookmark' title='Permanent Link: MsSQL &#8211; Criptografia'>MsSQL &#8211; Criptografia</a></li>
<li><a href='http://www.webmaster.pt/classe-conexao-php-mysql-2780.html' rel='bookmark' title='Permanent Link: MySQL &#8211; Classe de Conexão PHP e MySQL'>MySQL &#8211; Classe de Conexão PHP e MySQL</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte1-3828.html' rel='bookmark' title='Permanent Link: Sistema De Notícias Em PHP E MySQL Parte1'>Sistema De Notícias Em PHP E MySQL Parte1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Há um tempo atrás publicamos várias matérias sobre o uso do Stored Procedure, porém, relacionados ao SQL.</p>
<p>Hoje estaremos publicando alguns comandos essenciais para seu uso junto ao MySQL.</p>
<p>Se você está começando agora em programação web e não sabe o que é Stored Procedure, falarei um pouco sobre ele abaixo antes de focarmos no assunto. ok?</p>
<p><H2>O Que É Stored Procedure?</h2>
<p>O Stored Procedure é uma coleção de comandos em SQL que tem por finalidade encapsular tarefas repetitivas, aceitando parâmetros de entrada e retornando um valor de status (para indicar aceitação ou falha na execução). </p>
<p>O procedimento armazenado pode reduzir o tráfego na rede, melhorar a performance, criar mecanismos de segurança, etc.</p>
<p>Geralmente o uso desta ferramenta é simple e facilita bastante o trabalho do Programador!</p>
<p>Abaixo vamos mostrar um exemplo simples que poderá facilitar e muito a vida de qualquer programador.</p>
<p>Estude, teste em seu Servidor e a partir dele, faça a adaptação para seus scripts!</p>
<h2>Trabalhando Com A Stored Procedure</h2>
<p>Agora que sabemos as vantagens em se usar um SP, vamos para um exemplo prático?</p>
<p>O exemplo que darei abaixo, pode ser usado em sistemas diversos, desde que seja corretamente customizado.</p>
<p><strong>Criando as Tabelas:</strong></p>
<p>Crie a tabela abaixo em sua base de dados, conforme o exemplo abaixo:</p>
<p><pre><code><br />
CREATE TABLE `cidade` (<br />
&nbsp;&nbsp;`id_cidade` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`id_pais` int(11) default NULL,<br />
&nbsp;&nbsp;`nome` varchar(80) default NULL,<br />
&nbsp;&nbsp;`populacao` longtext,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_cidade`)<br />
) TYPE=MyISAM;<br />
<br />
DROP TABLE IF EXISTS `pais`;<br />
CREATE TABLE `pais` (<br />
&nbsp;&nbsp;`id_pais` int(11) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`nome` varchar(80) NOT NULL default &#039;0&#039;,<br />
&nbsp;&nbsp;`idioma` varchar(50) default NULL,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id_pais`)<br />
) TYPE=MyISAM;<br />
<br />
</code></pre></p>
<p>Após criar as tabelas, vamos a um exemplo básico de stored procedure?</p>
<p><strong>Criando a Stored Procedure:</strong></p>
<p><pre><code><br />
<br />
DELIMITER $$<br />
<br />
DROP PROCEDURE IF EXISTS `listar_paises` $$<br />
<br />
CREATE PROCEDURE `listar_paises`(IN _id INT)<br />
<br />
BEGIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF(_id IS NULL) THEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT * FROM pais;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT *&nbsp;&nbsp;FROM pais where id_pais = _id;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END IF;<br />
&nbsp;&nbsp; END $$<br />
DELIMITER ;<br />
<br />
</code></pre></p>
<p>Vamos entender como funciona?</p>
<ul>
<li><strong>DELIMITER $$</strong> &#8211; Servirá para informar onde começa e termina o sistema.</li>
<li><strong>DROP PROCEDURE</strong> &#8211; Para excluir uma procedure, o procedimento é simples: Basta utilizar a cláusula &#8220;DROP PROCEDURE&#8221;, conforme o exemplo acima.</li>
<li><strong>CREATE PROCEDURE</strong> &#8211; Essa é a parte onde solicitarei ao Sistema para criar uma Procedure, disponibilizando entre o BEGIN (que informará onde inicia) e END (que informará onde termina) os parâmetros.</li>
</ul>
<p>Bem&#8230; eu já criei minha base de dados e criei junto ao phpMyAdmin a SP (conforme imagem a seguir).</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/07/imagem013.jpg" alt="" width="600" height="260" class="aligncenter size-full wp-image-7627" /></p>
<p>Veja que no próprio phpMyADmin você terá a chance de testar o parâmetro criado, criando seu próprio código em PHP!</p>
<p>Abaixo vamos dar alguns exemplos para você implementar em seus scripts, ok?</p>
<h2>Usando O PHP</h2>
<p>Para efetuar uma conexão através do script em PHP, o procedimento também é básico. Basta seguir os detalhes descritos no código (conforme trecho abaixo):</p>
<p><pre><code><br />
&lt;?php<br />
<br />
class MySQL {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $host = &#039;localhost&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $usr = &#039;quemuel_quemuel&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $pw&nbsp;&nbsp;= &#039;quemuel123&#039;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $db&nbsp;&nbsp;= &#039;quemuel_procedure&#039;;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $sql; // Query - instrução SQL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $conn; // Conexão ao banco<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $resultado; // Resultado de uma consulta<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function MySQL() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Esta função conecta-se ao banco de dados e o seleciona.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function connMySQL() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;conn = mysqli_connect($this-&gt;host, $this-&gt;usr, $this-&gt;pw, $this-&gt;db);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$this-&gt;conn) {<br />
echo &quot;&lt;p&gt;Não foi possível conectar-se ao servidor MySQL.&lt;/p&gt;\n&quot; .<br />
&quot;&lt;p&gt;&lt;strong&gt;Erro MySQL: &quot; . mysqli_connect_error() . &quot;&lt;/strong&gt;&lt;/p&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } elseif (!mysqli_select_db($this-&gt;conn, $this-&gt;db)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;&lt;p&gt;Não foi possível selecionar o Banco de Dados desejado.&lt;/p&gt;\n&quot; .<br />
&quot;&lt;p&gt;&lt;strong&gt;Erro MySQL: &quot; . mysqli_error($this-&gt;conn) . &quot;&lt;/strong&gt;&lt;/p&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
// Função para executar SPs (Stored Procedures). Utiliza-se a função mysqli_multi_query() <br />
// porque as SPs retornam mais de um conjunto de resultados e a função mysqli_query() não consegue <br />
// trabalhar com respostas múltiplas, ocasionando eventuais erros.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function execSP($sql) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;connMySQL();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;sql = $sql;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (mysqli_multi_query($this-&gt;conn, $this-&gt;sql)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;resultado = mysqli_store_result($this-&gt;conn);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $row = mysqli_fetch_row($this-&gt;resultado);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;closeConnMySQL();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysqli_free_result($this-&gt;resultado);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $row[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;&lt;p&gt;Não foi possível executar a seguinte instrução “.<br />
“SQL:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;$sql&lt;/strong&gt;&lt;/p&gt;\n&quot;.<br />
&quot;&lt;p&gt;Erro MySQL: &quot; . mysqli_error($this-&gt;conn) . &quot;&lt;/p&gt;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;closeConnMySQL();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Função para encerramento da conexão com o banco de dados.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function closeConnMySQL() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return mysqli_close($this-&gt;conn);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
} // Finaliza a classe MySQL<br />
<br />
//Instancia novo objeto da classe MySQL.<br />
$mySQL = new MySQL;<br />
<br />
?&gt;<br />
<br />
</code></pre></p>
<p><strong>IMPORTANTE:</strong> Para usar as funcionalidades de Stored Procedure do MySQL, você deverá incluir a linha a seguir no &#8220;PHP.INI&#8221;:</p>
<p>“extension=php_mysqli.dll”.</p>
<p>Obs.: A DLL também deverá estar habilitada.</p>
<p>Em Servidores web com o CPanel, geralmente já vem configurado! Se for outra estrutura é necessário configurar manualmente.</p>
<p>- Para evitar erros, trabalhe na estrutura LAMP, pois nela você terá <strong>suporte ao PHP 5 e MySQL 5</strong>. Em outras versões poderá dar erro.</p>
<p>Bem&#8230; este foi apenas um pontapé inicial para iniciarmos os trabalhos com o Stored Procedure.</p>
<p>Nas próximas edições estaremos explorando o comando &#8220;CALL&#8221; e postando informações detalhadas que com certeza lhe ajudarão em seus Projetos.</p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/07/ficheiros4.zip'>Store Procedure Com PHP E MySQL</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/stored-procedure-php-mysql-7625.html">Stored Procedure Com PHP E MySQL</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Stored%20Procedure%20Com%20PHP%20E%20MySQL%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;t=Stored%20Procedure%20Com%20PHP%20E%20MySQL" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;title=Stored%20Procedure%20Com%20PHP%20E%20MySQL&amp;notes=A%20Stored%20Procedure%20%C3%A9%20um%20conjunto%20de%20comandos%20SQL%20que%20permitem%20trabalhar%20tarefas%20repetitivas.%20Saiba%20como%20trabalhar%20com%20Stored%20Procedure." title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;title=Stored%20Procedure%20Com%20PHP%20E%20MySQL&amp;bodytext=A%20Stored%20Procedure%20%C3%A9%20um%20conjunto%20de%20comandos%20SQL%20que%20permitem%20trabalhar%20tarefas%20repetitivas.%20Saiba%20como%20trabalhar%20com%20Stored%20Procedure." title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;title=Stored%20Procedure%20Com%20PHP%20E%20MySQL" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;title=Stored%20Procedure%20Com%20PHP%20E%20MySQL" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fstored-procedure-php-mysql-7625.html&amp;title=Stored%20Procedure%20Com%20PHP%20E%20MySQL" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/mssql-criptografia-2179.html' rel='bookmark' title='Permanent Link: MsSQL &#8211; Criptografia'>MsSQL &#8211; Criptografia</a></li>
<li><a href='http://www.webmaster.pt/classe-conexao-php-mysql-2780.html' rel='bookmark' title='Permanent Link: MySQL &#8211; Classe de Conexão PHP e MySQL'>MySQL &#8211; Classe de Conexão PHP e MySQL</a></li>
<li><a href='http://www.webmaster.pt/sistema-noticias-php-mysql-parte1-3828.html' rel='bookmark' title='Permanent Link: Sistema De Notícias Em PHP E MySQL Parte1'>Sistema De Notícias Em PHP E MySQL Parte1</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/stored-procedure-php-mysql-7625.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Formatar Data Na Pesquisa</title>
		<link>http://www.webmaster.pt/formatar-data-pesquisa-7948.html</link>
		<comments>http://www.webmaster.pt/formatar-data-pesquisa-7948.html#comments</comments>
		<pubDate>Mon, 09 Aug 2010 08:45:11 +0000</pubDate>
		<dc:creator>Quemuel Aquino</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[php tutorial]]></category>

		<guid isPermaLink="false">http://www.webmaster.pt/?p=7948</guid>
		<description><![CDATA[O tutorial apresenta um sistema de notícias básico, código para a pesquisa e ainda a formatação da data na pesquisa.<p><a href="http://www.webmaster.pt/formatar-data-pesquisa-7948.html">Formatar Data Na Pesquisa</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Related posts:<ol><li><a href='http://www.webmaster.pt/mssql-gerando-xml-2194.html' rel='bookmark' title='Permanent Link: MSSQL &#8211; Gerando XML'>MSSQL &#8211; Gerando XML</a></li>
<li><a href='http://www.webmaster.pt/mysql-blob-fields-3293.html' rel='bookmark' title='Permanent Link: MySQL &#8211; Trabalhando com Blob Fields'>MySQL &#8211; Trabalhando com Blob Fields</a></li>
<li><a href='http://www.webmaster.pt/criar-pdf-php-7371.html' rel='bookmark' title='Permanent Link: Criar PDF Através do PHP'>Criar PDF Através do PHP</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Na Internet você encontra vários sistemas de notícias personalizados ou simples, porém, relacionado ao buscador que deve ser adicionado para facilitar as buscas, dificilmente tu encontra algo completo.</p>
<p>Nesta matéria vamos postar um sistema simples de notícia, com um argumento para inserir em sua busca.</p>
<p>Como fazemos em todas as nossas matérias, em anexo temos disponível os ficheiros para que tu possa estudar e testar a matéria que estaremos explicando a seguir.</p>
<h2>Criando As Tabelas Na Base De Dados</h2>
<p>Antes de partirmos para a programação, vamos criar uma tabelinha simples, só para rodarmos a solução que estamos a criar.</p>
<p>Para isso, pegue o conteúdo do ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.</p>
<p>Em nossas matérias utilizamos como padrão o MySQLFront ou o PHPMyAdmin. Caso tu também esteja utilizando outra solução é só colar o conteúdo no SQL Editor (conforme código abaixo).</p>
<p><pre><code><br />
----- CRIA A TABELA DE NOTÍCIAS -----<br />
<br />
DROP TABLE IF EXISTS `tbl_noticias`;<br />
CREATE TABLE `tbl_noticias` (<br />
&nbsp;&nbsp;`id` int(5) NOT NULL auto_increment,<br />
&nbsp;&nbsp;`nome` varchar(30) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`sobrenome` varchar(30) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`cidade` varchar(50) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`estado` char(2) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`email` varchar(80) default NULL,<br />
&nbsp;&nbsp;`data` date NOT NULL default &#039;0000-00-00&#039;,<br />
&nbsp;&nbsp;`hora` time NOT NULL default &#039;00:00:00&#039;,<br />
&nbsp;&nbsp;`titulo` varchar(100) NOT NULL default &#039;&#039;,<br />
&nbsp;&nbsp;`subtitulo` varchar(200) default NULL,<br />
&nbsp;&nbsp;`texto` text NOT NULL,<br />
&nbsp;&nbsp;`ver` char(3) default &#039;off&#039;,<br />
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`id`),<br />
&nbsp;&nbsp;UNIQUE KEY `id` (`id`)<br />
);<br />
<br />
----- INSERE CONTEÚDO NA TABELA DE NOTÍCIAS -----<br />
<br />
INSERT INTO `tbl_noticias` VALUES (1,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;LO&#039;,&#039;teste@teste.com.br&#039;,&#039;2010-07-31&#039;,&#039;00:00:00&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolorLorem ipsum dolorLorem ipsum dolor&#039;,&#039;Lorem ipsum dolorLorem ipsum dolorLorem ipsum dolor\r\n\r\nLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor\r\n\r\nLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor\r\n\r\nLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor&#039;,&#039;on&#039;);<br />
INSERT INTO `tbl_noticias` VALUES (2,&#039;Teste teste teste&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;LO&#039;,&#039;teste@teste.com.br&#039;,&#039;2010-07-31&#039;,&#039;00:00:00&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor &#039;,&#039;on&#039;);<br />
INSERT INTO `tbl_noticias` VALUES (3,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;LO&#039;,&#039;teste@teste.com.br&#039;,&#039;2010-07-31&#039;,&#039;00:00:00&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor &#039;,&#039;on&#039;);<br />
INSERT INTO `tbl_noticias` VALUES (4,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;LO&#039;,&#039;teste@teste.com.br&#039;,&#039;2010-07-31&#039;,&#039;00:00:00&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor \r\n\r\nLorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor &#039;,&#039;on&#039;);<br />
INSERT INTO `tbl_noticias` VALUES (5,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolor&#039;,&#039;LO&#039;,&#039;teste@teste.com.br&#039;,&#039;2010-07-31&#039;,&#039;00:00:00&#039;,&#039;Lorem ipsum dolor&#039;,&#039;Lorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor&#039;,&#039;Lorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor\r\n\r\nLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor\r\n\r\nLorem ipsum dolorLorem ipsum dolorLorem ipsum dolorLorem ipsum dolor&#039;,&#039;on&#039;);<br />
<br />
</code></pre></p>
<p>Após importar os dados, você poderá configurar o script de conexão à base de dados.</p>
<h2>Configurando O Script De Conexão</h2>
<p>Para efetuar a configuração devida, acesse o script &#8220;conexao.php&#8221; e siga o exemplo a seguir:</p>
<p><pre><code><br />
$database = &quot;SERVIDOR&quot;; // NOME DO SERVIDOR<br />
$dbname&nbsp;&nbsp; = &quot;BASEDEDADOS&quot;; // NOME DA BASE DE DADOS<br />
$usuario&nbsp;&nbsp;= &quot;USUARIO&quot;; // USUARIO DO MYSQL<br />
$dbsenha&nbsp;&nbsp;= &quot;SENHA&quot;; // SENHA DO USUARIO MYSQL<br />
<br />
$conexao=mysql_connect ($database, $usuario, $dbsenha);<br />
<br />
if($conexao){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (mysql_select_db($dbname, $conexao)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Não foi possível selecionar o Banco de Dados&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Erro ao conectar o MySQL&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</code></pre></p>
<p>Após efetuar essa configuração, vamos agora conhecer os scripts que trabalharemos?</p>
<h2>Ficheiro cadastrar.php</h2>
<p>Até para facilitar suas futuras implementações, não caprixamos na parte visual. Apenas tentamos postar um script limpo e direto!</p>
<p>Esse ficheiro tem por finalidade efetuar o cadastro junto ao banco de dados dos principais dados na base de dados (conforme script e imagem a seguir).</p>
<p><pre><code><br />
&lt;?php<br />
<br />
$data = date(&quot;Y-m-d&quot;);<br />
$hora = date(&quot;H:i:s&quot;);<br />
$novadata = substr($data,8,2) . &quot;/&quot; .substr($data,5,2) . &quot;/&quot; . substr($data,0,4);<br />
$novahora = substr($hora,0,2) . &quot;h&quot; .substr($hora,3,2) . &quot;min&quot;;<br />
<br />
echo &quot;&lt;h1&gt;Sistema de Cadastro de Notícias&lt;/h1&gt;&quot;;<br />
echo &quot;&lt;hr&gt;&lt;br&gt;&quot;;<br />
echo &quot;&lt;form action=&#039;script_noticias.php?acao=cadastrar&#039; method=&#039;post&#039;&gt;&quot;;<br />
echo &quot;Nome:&lt;input name=&#039;nome&#039; type=&#039;text&#039; size=30&gt; *&lt;br&gt;&quot;;<br />
echo &quot;Sobrenome:&lt;input name=&#039;sobrenome&#039; type=&#039;text&#039; size=30&gt; *&lt;br&gt;&quot;;<br />
echo &quot;Cidade:&lt;input name=&#039;cidade&#039; type=&#039;text&#039; size=30&gt; *&lt;br&gt;&quot;;<br />
echo &quot;Estado:&lt;i&gt;(Exemplo: SP, RS, BA)&lt;/i&gt;&lt;input name=&#039;estado&#039; type=&#039;text&#039; size=5&gt; *&lt;br&gt;&quot;;<br />
echo &quot;Email: &lt;i&gt;(Exemplo: teste@teste.com)&lt;/i&gt;&lt;input name=&#039;email&#039; type=&#039;text&#039; size=30&gt;&lt;br&gt;&lt;br&gt;&quot;;<br />
echo &quot;Título do Texto:&lt;input name=&#039;titulo&#039; type=&#039;text&#039; size=30&gt; *&lt;br&gt;&quot;;<br />
echo &quot;Subtítulo do Texto:&lt;textarea name=&#039;subtitulo&#039; rows=5 cols=30&gt;&lt;/textarea&gt;&lt;br&gt;&quot;;<br />
echo &quot;Texto:&lt;textarea name=&#039;texto&#039; rows=10 cols=30&gt;&lt;/textarea&gt; *&lt;br&gt;&quot;;<br />
echo &quot;&lt;input name=&#039;data&#039; type=&#039;hidden&#039; value=&#039;$data&#039;&gt;&quot;;<br />
echo &quot;&lt;input name=&#039;hora&#039; type=&#039;hidden&#039; value=&#039;$hora&#039;&gt;&quot;;<br />
echo &quot;&lt;input type=&#039;submit&#039; value=&#039;Cadastrar&#039;&gt;&quot;;<br />
echo &quot;&lt;/form&gt;&quot;;<br />
echo &quot;&lt;br&gt;&lt;hr&gt;&quot;;<br />
echo &quot;&lt;i&gt;Campos marcados com &lt;b&gt;*&lt;/b&gt; são obrigatórios no cadastro.&lt;br&gt;&quot;;<br />
echo &quot;&lt;b&gt;Observação&lt;/b&gt;: Será inserido no seu cadastro a data atual, bem como a hora atual do cadastro&lt;br&gt;&quot;;<br />
echo &quot;Data: $novadata - Hora: $novahora&lt;br&gt;&quot;;<br />
<br />
?&gt;<br />
</code></pre></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem01.jpg" alt="" width="600" height="511" class="aligncenter size-full wp-image-7950" /></p>
<p>Após preencher as informações, o sistema lhe redicionará para a página &#8220;script_noticias.php&#8221; que fará a inserção das informações, redirecionando a seguir para a página &#8220;listar_noticias.php&#8221;.</p>
<h2>Ficheiro listar_noticias.php</H2></p>
<p>A página listar também é básica e trás um select personalizado que deverá imprimir em tela as principais variáveis (título, data, alterar e excluir).</p>
<p>Bem&#8230; espero que não se importe com a quantidade de &#8220;echo&#8221; encontrado no ficheiro, mas eles foram postos de forma proposital para ajudar quem está começando na programação web (conforme código e imagem a seguir).</p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/codigo.jpg" alt="codigo" title="codigo" width="600" height="640" class="aligncenter size-full wp-image-8276" /></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem02.jpg" alt="" width="545" height="292" class="aligncenter size-full wp-image-7951" /></p>
<p>Após visualizar, excluir ou alterar a notícia, ele poderá retornar à tela inicial.</p>
<p>OBS.: Poderíamos implementar bastante esse ficheiro com visualizador de informações, imagens, entre outras soluções a mais, mas o foco principal será o buscador (que falaremos a seguir).</p>
<p>Como você pode ver, há uma opção de retornar à página inicial.</p>
<h2>Ficheiro Página Inicial</h2>
<p>Nesta página, você encontrará 3 links:</p>
<ul>
<li>Para a página onde poderá visualizar todos os cadastros;</li>
<li>Alterar ou Excluir uma notícia cadastrada;</li>
<li>Cadastrar uma nova notícia.</li>
</ul>
<p>Após isso será possível efetuar sua busca!</p>
<p>O script é simples, sem muitas funções (prático para quem está começando), mas funcional.</p>
<p>Antes de verificar o código, saiba que essa parte tratará a data!</p>
<p>Aqui ele converterá o formato de inglês para o formato brasileiro (ex: 13/04/2010).</p>
<p><pre><code><br />
$data = $_POST[&#039;palavra&#039;]; <br />
$data_br = implode(preg_match(&quot;~\/~&quot;, $data) == 0 ? &quot;/&quot; : &quot;-&quot;, array_reverse(explode(preg_match(&quot;~\/~&quot;, $data) == 0 ? &quot;-&quot; : &quot;/&quot;, $data))); <br />
</code></pre></p>
<p>Bem&#8230; poderíamos fazer uma função melhor elaborada, mas como pensei em apresentar o código acima para quem está começando, não o fiz!</p>
<p>Ele funciona da seguinte forma: Busca as informações (título, data e subtítulo). Se não encontra as informações, informa em tela que o conteúdo não foi encontrado (conforme código e imagens a seguir).</p>
<p><pre><code><br />
&lt;?<br />
<br />
include(&#039;conexao.php&#039;);<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;.:: WEBMASTER.PT :: SISTEMA DE NOTÍCIAS ::.&lt;/title&gt;<br />
&lt;/head&gt;<br />
<br />
&lt;p&gt;Veja as Not&amp;iacute;cias cadastradas no sistema &lt;a href=&quot;noticias.php&quot; target=&quot;_top&quot;&gt;clicando aqui&lt;/a&gt; (TEXTOS E INFORMAÇÕES)&lt;/p&gt;<br />
<br />
&lt;p&gt;Altere ou Exclua uma not&amp;iacute;cia cadastrada &lt;a href=&quot;listar_noticias.php&quot; target=&quot;_top&quot;&gt;clicando aqui&lt;/a&gt; &lt;/p&gt;<br />
<br />
&lt;p&gt;Cadastre uma nova Notícia &lt;a href=&quot;cadastrar.php&quot; target=&quot;_top&quot;&gt;clicando aqui&lt;/a&gt; &lt;/p&gt;<br />
<br />
&lt;table width=&quot;100%&quot;&gt;<br />
&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;4&quot;&gt;&lt;div align=&quot;left&quot;&gt;&lt;font color=&quot;white&quot;&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;885&quot; valign=&quot;top&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- INICIO DO MEIO --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table border=&quot;0&quot; width=&quot;503&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tbody&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td width=&quot;100%&quot; valign=&quot;top&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align=&quot;left&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;b&gt;Efetuar Busca &lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tbody&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;div align=&quot;left&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;&nbsp;name=&quot;form1&quot; method=POST action&quot;index.php&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align=&quot;center&quot;&gt; &lt;input type=&quot;text&quot;&nbsp;&nbsp;name=&quot;palavra&quot; value=&quot;&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Buscar&quot;&gt;<br />
&lt;/div&gt;&lt;/form&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align=&quot;left&quot;&gt;&lt;/div&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table width=&quot;481&quot; border=&quot;0&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td valign=&quot;middle&quot; align=&quot;left&quot;&gt; &lt;font face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=&quot;2&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!empty($_POST[palavra])) {<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$palavra = str_replace(&quot; &quot;, &quot;%&quot;, $_POST[palavra]);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// caso você trabalhe com números (datas) precisará implementar assim:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data = $_POST[&#039;palavra&#039;]; // a data vem no formato dos eua (, ex: 2010-04-13<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data_br = implode(preg_match(&quot;~\/~&quot;, $data) == 0 ? &quot;/&quot; : &quot;-&quot;, array_reverse(explode(preg_match(&quot;~\/~&quot;, $data) == 0 ? &quot;-&quot; : &quot;/&quot;, $data))); // aqui converte para formato brasileiro, ex: 13/04/2010<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query = &quot;SELECT * FROM tbl_noticias WHERE texto LIKE &#039;%&quot;.$palavra.&quot;%&#039; or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data LIKE &#039;&quot;.$data_br.&quot;&#039; OR subtitulo LIKE &#039;%&quot;.$palavra.&quot;%&#039; ORDER BY data DESC&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultado = mysql_query($query);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$total = mysql_num_rows($resultado);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($total&gt;= 1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Sua busca retornou &lt;b&gt;&#039;$total&#039;&lt;/b&gt; resultado(s).&lt;br&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while($r = mysql_fetch_array($resultado)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;&lt;hr&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo date(&#039;d/m/Y&#039;, strtotime($r[data])) . &quot; - &lt;b&gt;&lt;a href=&#039;noticia_completa.php?id=$r[id]&#039;&gt;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $r[titulo].&quot;&lt;/a&gt;&lt;/b&gt;&lt;br&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $r[descricao].&quot;&lt;br&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;font size=2 color=&#039;red&#039;&gt;&amp;nbsp;&amp;nbsp;Desculpe mas a Palavra &lt;b&gt;&lt;font color=black&gt;$palavra&lt;/font&gt;&lt;/b&gt; não Foi&nbsp;&nbsp;Encontrada&lt;/font&gt;&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/font&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align=&quot;left&quot;&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/center&gt;&lt;p&gt;&lt;font face=verdana&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- FIM DO MEIO --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;/tr&gt;<br />
&lt;/table&gt;<br />
<br />
</code></pre></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem03.jpg" alt="" width="562" height="204" class="aligncenter size-full wp-image-7952" /></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem04.jpg" alt="" width="541" height="294" class="aligncenter size-full wp-image-7953" /></p>
<p><img src="http://www.webmaster.pt/wp-content/uploads/2010/08/imagem05.jpg" alt="" width="555" height="256" class="aligncenter size-full wp-image-7954" /></p>
<p>Prático, não?</p>
<p>Bem&#8230; esse ficheiro não é difícil de se trabalhar e creio que com as explicações acima você poderá implementar fácilmente seu web site com esta solução.</p>
<p>Ficamos por aqui em mais uma matéria! Esperamos tê-lo ajudado em algo&#8230;</p>
<p>Download do código usado neste tutorial: <a href='http://www.webmaster.pt/wp-content/uploads/2010/08/ficheiros.zip'>Formatar Data Na Pesquisa</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;source=marketocracia&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.webmaster.pt/formatar-data-pesquisa-7948.html">Formatar Data Na Pesquisa</a> &eacute; um artigo da nossa comunidade: <a href="http://www.webmaster.pt">Webmaster.pt Marketocracia Digital</a></p>



Partilha Este Artigo Por Favor:


	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Formatar%20Data%20Na%20Pesquisa%20-%20http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html" title="Twitter"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;t=Formatar%20Data%20Na%20Pesquisa" title="Facebook"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;title=Formatar%20Data%20Na%20Pesquisa&amp;notes=O%20tutorial%20apresenta%20um%20sistema%20de%20not%C3%ADcias%20b%C3%A1sico%2C%20c%C3%B3digo%20para%20a%20pesquisa%20e%20ainda%20a%20formata%C3%A7%C3%A3o%20da%20data%20na%20pesquisa." title="del.icio.us"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;title=Formatar%20Data%20Na%20Pesquisa&amp;bodytext=O%20tutorial%20apresenta%20um%20sistema%20de%20not%C3%ADcias%20b%C3%A1sico%2C%20c%C3%B3digo%20para%20a%20pesquisa%20e%20ainda%20a%20formata%C3%A7%C3%A3o%20da%20data%20na%20pesquisa." title="Digg"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;title=Formatar%20Data%20Na%20Pesquisa" title="Mixx"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;title=Formatar%20Data%20Na%20Pesquisa" title="Reddit"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.webmaster.pt%2Fformatar-data-pesquisa-7948.html&amp;title=Formatar%20Data%20Na%20Pesquisa" title="StumbleUpon"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webmaster.pt/feed" title="RSS"><img src="http://www.webmaster.pt/wp-content/plugins/sociable/img/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://www.webmaster.pt/mssql-gerando-xml-2194.html' rel='bookmark' title='Permanent Link: MSSQL &#8211; Gerando XML'>MSSQL &#8211; Gerando XML</a></li>
<li><a href='http://www.webmaster.pt/mysql-blob-fields-3293.html' rel='bookmark' title='Permanent Link: MySQL &#8211; Trabalhando com Blob Fields'>MySQL &#8211; Trabalhando com Blob Fields</a></li>
<li><a href='http://www.webmaster.pt/criar-pdf-php-7371.html' rel='bookmark' title='Permanent Link: Criar PDF Através do PHP'>Criar PDF Através do PHP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster.pt/formatar-data-pesquisa-7948.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
