sexta-feira, 7 de outubro de 2011

MySQL Copiar uma linha de uma tabela para outra - Copy a row to other table

Para tabelas IDENTICAS inclusive o ID (campo autoincrement):

insert into tabela2 select * from tabela1 where id='1'


Para tabelas com IDs diferentes**:

insert into tabela2 (`apelido`, `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao`)   select `apelido`, `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao` from tabela1 where id='1'

** basta tirar a coluna ID, no meu caso é a primeira coluna.

Para mudar apenas um valor** entre as tabelas:

insert into tabela2 (`apelido`, `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao`)   select 'LA WEB', `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao` from tabela1 where id='1'

** notem que no select ao invés de apelido esta 'La Web' ou seja todos os apelidos vão ser gravados como La Web, as aspas simples são obrigatórias.

segunda-feira, 25 de julho de 2011

MySQL Concatenar (juntar) variaveis

Abaixo a rotina para juntar variaveis que estejam em duplicidade de id_carro e data de inserção:

SELECT id, GROUP_CONCAT(id_carro SEPARATOR '|'), GROUP_CONCAT(pod SEPARATOR '|'), sum( valor )
FROM planilha_carros
GROUP BY id_carro, data_insercao
HAVING COUNT( * ) >1

terça-feira, 12 de julho de 2011

MySQL pesquisa entre tabelas para achar id que não estão em uma delas

Quando vc tem duas tabelas e quer saber qual id da tabela principal não esta na tabela secundária:

SELECT tabela1.id_carro from tabela1 WHERE tabela1.id_carro NOT IN
( SELECT tabela2.id_carro FROM tabela2)

Onde id_carro é o campo em comum entre as tabelas.


quarta-feira, 1 de junho de 2011

MySQL e PHP, caracteres estranhos no lugar do acento

As vezes migrando uma base de dados de um servidor para o outro, ou upload para a tabela mysql, aparecem caracteres estranhos no lugar dos acentos e por mais que vc mude o <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> ou use a função UTF8_decode nada funciona...

Achei essa função do PHP que funcionou no meu caso:


$entrega_cidade = htmlentities($row['entrega_cidade'], ENT_QUOTES, "UTF-8");

_

sábado, 28 de maio de 2011

TAB automático

O exemplo abaixo executa uma function de ajax (validator) previamente escrita, após serem digitados 11 caracteres:

<input class='preto' size=14 type=text name='campo' maxlength=11 id='campo' onkeyup='if (document.getElementById("campo").value.length==11) validator(this.value);' />


Aqui o TAB muda para outro campo:
<input class='preto' size=14 type=text name='campo' maxlength=11 id='campo' onkeyup='if(document.getElementById("campo").value.length==11)
document.getElementById("campo2").focus();' />

<input type=text name=campo2 id='campo2' />

terça-feira, 18 de janeiro de 2011

Concatenar Varíaveis

Também conhecido como váriaveis váriaveis:

Quando houverem dentro de um loop apenas algumas váriaveis a serem "pescadas"...

<?php
$j=0;
for ($i=0;$i<10;$i++) {
if ($i==2) $a="jurubeba";
elseif ($i==3) $a="mate";
else $a='';
if ($a!='') { $j++; $c[$j]="$a";}
}
echo "<br/><br/>";

for ($x=1;$x<=$j;$x++) {
echo $c[$x];
echo "<br/>";
}

?>

Este exemplo foi criado para ser retirar as respostas de dentro uma variavel(observacao) de um loop de uma query, porém na hora de mostrar na tela devem ser mostradas como uma única observação separadas por cliente.

Ficando assim:
$vv=0;
for ($u=1;$u<=5;$u++) {
$res_fornecedor2 = mysql_query("select DATE_FORMAT(data, '%d/%m/%Y') as agendamentoC, hora, minuto, ajudantes, endereco, id_tipo, comentarios, peso_bruto from TABELA where id_tabela='$id_containerY[$u]'");

$linha_fornecedor2=mysql_fetch_array($res_fornecedor2);

$agendamento2 = $linha_fornecedor2['agendamentoC'];
$ajudantes2 = $linha_fornecedor2['ajudantes'];
$endereco2 = $linha_fornecedor2['endereco'];
$id_tipo_container2 = $linha_fornecedor2['id_tipo_container'];
$observacoes2 = $linha_fornecedor2['comentarios'];
$peso_bruto2 = $linha_fornecedor2['peso_bruto'];

if ($observacoes2) {$vv++; $output2 = str_replace(chr(10), '<br/>', $observacoes2); $observacoesX[$vv]="$output2";}

}

for ($xx=1;$xx<=$vv;$xx++) {
echo "$observacoesX[$xx]<br/>";
}


Se quiser guardar as infos dentro da variavel trocar:

echo "$observacoesX[$xx]<br/>";

por:

$observacoesX.="$observacoesX[$xx]<br/>";

terça-feira, 7 de dezembro de 2010

JavaScript Marcar Desmacar Todas

Script mais básico:
<script>
function selecionar_tudo(){
for (i=0;i<document.procurado.elements.length;i++)
if(document.procurado.elements[i].type == "checkbox")
document.procurado.elements[i].checked=1
}


function deselecionar_tudo(){
for (i=0;i<document.procurado.elements.length;i++)
if(document.procurado.elements[i].type == "checkbox")
document.procurado.elements[i].checked=0
}
</script>

No HTML:
<input type=button onclick='selecionar_tudo()' value='Marcar' class=preto />
<input type=button onclick='deselecionar_tudo()' value='Desmarcar' class=preto />

Lembrar que "procurado" é o "name" do form...

Script mais complexo:
Colocar este script no topo da sua webpage:

<script>
function Marcar(quem,valor,j) {
for (i=1; i<=j; i++) {
p = quem+i;
document.getElementsByName(p)[valor].checked = true;
}
}
function DesMarcar(quem,valor,j) {
for (i=1; i<=j; i++) {
p = quem+i;
document.getElementsByName(p)[valor].checked = false;
}
}
</script>

O HTML deve ser:
<input type=checkbox name=id1 value=1 /> Papel
<input type=checkbox name=id2 value=2 /> Fruta
<input type=checkbox name=id3 value=3 /> Paisagem

<input type=radio name='mma_info' value=1 onclick=Marcar('id',0,3); /> SIM (Repetir a mesma informação para todos)
ou Não <input type=radio name='mma_info' value=0 onclick=DesMarcar('id',0,3); />

O funcionamento do onclick:
id == nome do campo
0 == posição (no caso de checkbox sempre 0)
3 == quantidade de campos

terça-feira, 19 de outubro de 2010

ASP - Formulario q funciona com Flash

<%
Option Explicit

Response.Expires = 0

Dim Email, xEmail

Set Email=Server.Createobject("CDONTS.NewMail")
Email.From=Request.Form("email")
Email.To="seu@email.com.br"
Email.Subject= "Contato - Site"

xEmail = chr(10) & "Nome - " & Request.Form("nome") & CHR(13) & CHR(10)
xEmail = xEmail & "Endereço - " & Request.Form("endereco") & CHR(13) & CHR(10)
xEmail = xEmail & "Cidade - " & Request.Form("cidade") & CHR(13) & CHR(10)
xEmail = xEmail & "Estado - " & Request.Form("estado") & CHR(13) & CHR(10)
xEmail = xEmail & "E-mail - " & Request.Form("email") & CHR(13) & CHR(10)
xEmail = xEmail & "Fone - " & Request.Form("ddd") & Request.Form("fone") & CHR(13) & CHR(10)
xEmail = xEmail & "Info - " & Request.Form("info") & CHR(13) & CHR(10)
xEmail = xEmail & "Apto standard - " & Request.Form("standard") & CHR(13) & CHR(10)
xEmail = xEmail & "Apto superior - " & Request.Form("superior") & CHR(13) & CHR(10)
xEmail = xEmail & "Apto master - " & Request.Form("master") & CHR(13) & CHR(10)
xEmail = xEmail & "Adultos - " & Request.Form("adultos") & CHR(13) & CHR(10)
xEmail = xEmail & "Crianças - " & Request.Form("criancas") & CHR(13) & CHR(10)
xEmail = xEmail & "Entrada - " & Request.Form("entrada") & CHR(13) & CHR(10)
xEmail = xEmail & "Saída - " & Request.Form("saida") & CHR(13) & CHR(10)

Email.Body = xEmail

Email.Send

Set Email=Nothing

Response.Redirect "pagina_de_agradecimento.htm"

%>

segunda-feira, 20 de setembro de 2010

VirtualBox e Ubuntu compartilhar pasta

Para compartilhar ou "montar" uma pasta compartilhada no Ubuntu basta dar o seguinte comando (como root):

mount -t vboxsf NOME_DA_PASTA_COMPARTILHADA NOME_DA_PASTA_NO_UBUNTU

quinta-feira, 2 de setembro de 2010

Microsoft muda alinhamento da tabela de left para center

A Microsoft mudou sem avisar ninguém o alinhamento automático das td de left para center, no IE8, ou seja quem nunca precisou declarar align=left por ser padrão agora precisa declarar, um absurdo, pois todos os outros browsers continuam como padrão left.

Mais uma vez a Microsoft atrapalhando a vida dos programadores.

quinta-feira, 24 de junho de 2010

MySQL Duplicidade - Achar e Apagar - Duplicated data - find and erase



Para achar quantos itens estão duplicados em uma coluna MySQL:

SELECT CAMPO_DESEJADO, COUNT( * )
FROM TABELA_DESEJADA
GROUP BY CAMPO_DESEJADO
HAVING COUNT( * ) >1


Para apagar os dados que estão em duplicidade, escolha um campo chave, no meu caso é o campo email:

ALTER IGNORE TABLE `tabela_desejada` ADD UNIQUE INDEX(email)

Lembre-se que depois desse comando o campo e-mail não vai mais permitir cadastros em duplicidade

Criando um rotina em PHP e deixando apenas um item - PHP routine and leave only one item

<?php
include_once "CONN.php";

$q="SELECT email, COUNT( * ) as counter FROM TABLE GROUP BY email HAVING COUNT( * ) >1";
$r=$pdo->prepare($q);
$r->execute();
$a=0;
while ($l=$r->fetch()) :
 $conta=0;
 $contador=0;
 $contador=$l[1];
 $conta=$contador-1;
 $d=$pdo->prepare("delete from TABLE where email='$l[0]'  limit $conta");
 if ($d->execute()) $a++;
endwhile;

echo "apagados $a e-mails";
?>

Linux bash file returns unexpected token `$'do\r''

open file in vi edit with   vi filename.sh   command; type in vi  :set ff=unix  command; save file with  :wq It will save the file with unix...