mar 08

Importar banco de dados no MySQL pelo prompt do DOS

Uma das coisas que me deixa mais tranqüilo para programar é criar um ambiente de testes na minha própria máquina ou em um servidor local.

Com essa prática não temos o risco de causar problemas nos sites que os usuários finais utilizam.

Para copiar os arquivos que estão sendo utilizado online basta utilizar um programa de FTP, porém para copiarmos os dados de um banco de dados precisamos fazer o back-up e então importar esse arquivo. Gosto muito da praticidade do phpMyAdmin, além dele ser amplamente utilizado nos painéis de gerenciamento (CPanel, Plesk etc).

Um grande problema é quando precisamos importar arquivos muito grandes, o que demanda maior processamento e as vezes acaba demorando mais do que nossa paciência agüenta! Por isso gostaria de compartilhar uma prática que utilizo nesses casos.

Ao invés de importar diretamente pelo phpMyAdmin, faço a importação via command prompt do Windows (isso mesmo DOS).

Vou listar os passos para essa operação de importação do banco de dados via prompt de comando do Windows.

Utilizo na minha máquina Windows XP com o XAMPP, conforme instalação no post sobre servidores (veja aqui).

1) Iniciar > Executar > cmd
Isso server para abrir o terminal. Outro modo é abrir o programa diretamente pelo seu executável, o caminho dele normalmente é c:\WINDOWS\system32\cmd.exe

2) Digite o comando: c:\xampp\mysql\bin
Isso vai te levar para o diretório local de instalação do MySQL.

3) Digite o comando: mysql -u root -p
Isso vai iniciar o MySQL, a seguir você deve digitar a senha de administrador (root) do banco de dados.

4) Se estiver tudo correto vai aparecer no prompt algo assim: mysql>

Dentro do prompt você pode utilizar os mesmos comandos que utiliza na programação, como por exemplo: show databases;

Uma dica valiosa é o comando para alteração do charset, muitas vezes você vai importar o SQL e a acentuação ficará com problemas para resolver essa questão utilize o comando: mysql> charset utf8;

Para concluir a importação você precisa selecionar o banco de dados desejado e dar o comando para importação, são os seguintes:

mysql> use nomedo_db;
mysql> source d:/nomedoarquivo_db.sql;

Com essas operações você consegue importar um arquivo grande em poucos segundos. Importante lembrar que você utilize a opção DROP TABLE quando for fazer a exportação, assim as tabelas ficarão exatamente ao que está online.

fev 06

Expressões regulares no Spry

Tempos atrás estava precisando fazer validações diferentes nos formulário, por isso comecei a pesquisar sobre validações utilizando expressões regulares e Spry.

A utilização especifica que eu precisava era para slugs (alguns chamam de url de seo), mas pode ser utilizado para validação de nome da pasta, nome de arquivo ou qualquer outra string que seja composta apenas por letras, números e hífen (sem espaço).

Se você não sabe o que é expressão regular e deseja utilizar uma validação desse tipo, sugiro que leia esse arquivo, onde é abordado esse assunto de forma introdutória e ainda inclui exemplos.

Segue o código que utilizei no meu formulário:
<script src=”SpryAssets/SpryValidationTextField.js” type=”text/javascript”></script>
<link href=”SpryAssets/SpryValidationTextField.css” rel=”stylesheet” type=”text/css” />
<form id=”form1″ name=”form1″ method=”post” action=”">
<span id=”sprytextfield1″>
<input type=”text” name=”text1″ id=”text1″ />
<span class=”textfieldRequiredMsg”>A value is required.</span><span class=”textfieldInvalidFormatMsg”>Invalid format.</span></span>
</form>
<script type=”text/javascript”>
var sprytextfield1 = new Spry.Widget.ValidationTextField(”sprytextfield1″, “custom”, {characterMasking: /[a-zA-Z0-9-]/, useCharacterMasking:true});
</script>

Aqui está o exemplo online da validação.

Aqui está os arquivos utilizado nesse post.

Dúvidas com expressão regular? Leia o arquivo sobre o assunto!

Dúvidas com validação utilizando Spry? Leia esse artigo “Validação de formulários com Spry”.

jan 11

Supermercado Virtual

Fazer compras não é mais uma tortura, pelo menos aqui em Ribeirão Preto.

Aqui, existe um portal de compras onde eu encontro a maioria dos produtos que utilizo em casa.

Se você, assim como eu, fica estressado na fila do supermercado, tente essa nova opção.

www.supermercadoribeirao.com.br

Além da compra, você pode pesquisar os preços e comparar entre um supermercado e outro.

jun 16

Mês por extenso no PHP

Uma função que utilizo em PHP e que algumas pessoas me perguntaram esses dias é de como escrever o mês por extenso, mas o detalhe é que deve ser em português.

A função seguinte é muito simples, pego o número do mês e retorno o mês escrito, veja abaixo:

function mes_extenso($referencia = NULL){
switch ($referencia){
case 1: $mes = " de Janeiro de "; break;
case 2: $mes = " de Fevereiro de "; break;
case 3: $mes = " de Março de "; break;
case 4: $mes = " de Abril de "; break;
case 5: $mes = " de Maio de "; break;
case 6: $mes = " de Junho de "; break;
case 7: $mes = " de Julho de "; break;
case 8: $mes = " de Agosto de "; break;
case 9: $mes = " de Setembro de "; break;
case 10: $mes = " de Outubro de "; break;
case 11: $mes = " de Novembro de "; break;
case 12: $mes = " de Dezembro de "; break;
default: $mes = " de _______________ de ";
}
return $mes;
}

A utilização desse código é muito simples:

Quando você tem uma data no banco de dados no padrão americano, pode usar da seguinte forma:
$data1 = "2010-06-23";
$data1 = explode("-", $data1);
echo $data1[2].mes_extenso($data1[1]).$data1[0]."<br>";

Quando for um mês inexistente ele vai mostrar um espaço para preenchimento:
$data2 = "2010-xx-01";
$data2 = explode("-", $data2);
echo $data2[2].mes_extenso($data2[1]).$data2[0]."<br>";

Quando for uma data já com padrão brasileiro:
$data3 = "05/05/2010";
$data3 = explode("/", $data3);
echo $data3[0].mes_extenso($data3[1]).$data3[2]."<br>";

O código fonte está aqui.

É claro que você pode modificar o código para o uso específico que vai fazer em seu projeto.

Veja aqui um exemplo do funcionamento.

Um abraço,
Marcio Nakano

jan 07

Validação de formulários com Spry

Gosto muito da facilidade de aplicação e da economia de tempo que o Spry proporciona na validação de formulários.

O interessante é que esta validação é feita do lado cliente, ou seja é utilizado o processamento da máquina de quem está no formulário. É importante dizer que as principais validações devem ser feitas também no lado servidor, para garantir que os dados são realmente o que você precisa. A validação no lado servidor pode ser feita em PHP, ColdFusion, ASP ou qualquer outra linguagem que não interfere na validação inicial do formulário em Spry.

Vou mostrar agora, alguns exemplos básicos e até algumas personalizações que você pode fazer.

Neste exemplo vamos abordar:

  • Textos obrigatórios: inputs com preenchimento obrigatório;
  • Campos de datas e horas: com escolha do formato e validação no preenchimento, forçando o usuário a preencher somente com números;
  • Selects;
  • Texto com preenchimento mínimo: mais usados em senhas;
  • Textarea com preenchimento mínimo;
  • Checkbox: para aqueles formulários que é necessário marcar que leu alguma coisa pra prosseguir.

Veja a baixo como é o painel de configuração do Spry para input do tipo text.

Painel de configuração do Spry para input do tipo text

Painel de configuração do Spry para input do tipo text

 O código na página fica bem enxuto:

<script type=”text/javascript”>
<!–
var sprytextfield1 = new Spry.Widget.ValidationTextField(”sprytextfield1″);
var sprytextfield2 = new Spry.Widget.ValidationTextField(”sprytextfield2″, “date”, {format:”dd/mm/yyyy”, useCharacterMasking:true});
var sprytextfield3 = new Spry.Widget.ValidationTextField(”sprytextfield3″, “time”, {useCharacterMasking:true});
var spryselect1 = new Spry.Widget.ValidationSelect(”spryselect1″);
var sprytextfield4 = new Spry.Widget.ValidationTextField(”sprytextfield4″, “none”, {minChars:10});
var sprytextarea1 = new Spry.Widget.ValidationTextarea(”sprytextarea1″, {minChars:50, counterType:”chars_count”, counterId:”countsprytextarea1″, validateOn:["change"], maxChars:500});
var sprycheckbox1 = new Spry.Widget.ValidationCheckbox(”sprycheckbox1″);
//–>
</script>

Agora como seu formulário fica se tentar enviar o formulário, sem que as condições que você configurou, fica para o usuário.

 

Como seu formulário fica se tentar enviar o formulário, sem que as condições que você configurou, fica para o usuário.

Como seu formulário fica se tentar enviar o formulário, sem que as condições que você configurou, fica para o usuário.

Você pode conferir um exemplo aqui.

Mas existem algumas condições em que necessitamos validar o formulário que não estão definidas na biblioteca do Spry.

Vou mostrar outra forma onde você pode mesclar a validação do Spry com validações personalizadas via javascript, isso é possível se utilizarmos o método validate() do Spry.

Neste exemplo, vou fazer a confirmação de texto, muito usada na confirmação da senha digitada. Simplesmente vou verificar se o conteúdo de um input é igual ao outro.

Você pode conferir um exemplo aqui.

Agora, o conteúdo do código fica mais extenso, pois a validação é feita de forma manual e incrementando as funções que desenvolvemos.

<script type=”text/javascript”>
function validar(){
 //Travando o botão pra evitar vários cliques
 document.getElementById(”button”).disabled = true;
 var vali1 = sprytextfield1.validate();
 var vali2 = sprytextfield2.validate();
 var vali3 = sprytextfield3.validate();
 var vali4 = sprytextfield4.validate();
 var vali5 = spryselect1.validate();
 var vali6 = sprytextarea1.validate();
 var vali7 = sprycheckbox1.validate();
 if(vali1 && vali2 && vali3 && vali4 && vali5 && vali6 && vali7 && conteudoIgual()){
  document.getElementById(”form1″).submit();
 } else {
  alert(”Favor preencher corretamente todos os campos obrigatórios!”);
  document.getElementById(”button”).disabled = false;
 }
}
function conteudoIgual(){
 if(document.getElementById(’text1′).value == document.getElementById(’text1_c’).value)
  return true;
 else
  return false;
}
<!–
var sprytextfield1 = new Spry.Widget.ValidationTextField(”sprytextfield1″);
var sprytextfield2 = new Spry.Widget.ValidationTextField(”sprytextfield2″, “date”, {format:”dd/mm/yyyy”, useCharacterMasking:true});
var sprytextfield3 = new Spry.Widget.ValidationTextField(”sprytextfield3″, “time”, {useCharacterMasking:true});
var sprytextfield4 = new Spry.Widget.ValidationTextField(”sprytextfield4″, “none”, {minChars:10});
var spryselect1 = new Spry.Widget.ValidationSelect(”spryselect1″);
var sprytextarea1 = new Spry.Widget.ValidationTextarea(”sprytextarea1″, {minChars:50, counterType:”chars_count”, counterId:”countsprytextarea1″, validateOn:["change"], maxChars:500});
var sprycheckbox1 = new Spry.Widget.ValidationCheckbox(”sprycheckbox1″);
//–>
</script>

É claro que este exemplo é muito simples, mas muitos formulários possuem entrada de validação de CPF, CNPJ, data de nascimento, até mesmo integrações com funções AJAX. Para essas verificações já existem bastantes funções prontas na Web é só você pesquisar e implementar junto ao Spry.

Segue os fontes, onde vocês verão como foi feito os códigos de validação das duas formas.

Next Page »