Jump to content


Photo

Deletando Cadastros De Banco De Dados


  • Faça o login para participar
3 replies to this topic

#1 Gabriel

Gabriel

    CGI & PHP até Morre!!!!

  • Usuários
  • 573 posts
  • Sexo:Não informado
  • Localidade:Santo Andre-SP
  • Interesses:http://www.divulgue-me.com

Posted 05/06/2004, 23:34

Muita gente tem duvidas de como remover cadastrados de bancos de dados, vo nesse tuto explicar como fazer isso.
Vamos supor que temos um BD assim:
1|Gabriel|ghpnet@ig.com
2|Prix|cgimasters@lalala.com
3|Giovani|Stonerock@lala.com

então criamos o seguinte script
#!/usr/bin/perl
print "Content-type: text/html\n\n";
# Aqui pomos o caminho do perl e o header
use CGI;
$cgi = new CGI;
# Chamamos o modeulo para capturar dados dos formulario

$acao = $cgi->param("acao");
# variavel da ação do script

if($acao eq ""){
# se $acao for vazio, mostra os registros do bd para escolher qual deletar

open(BD,"dados.txt");
@bd=<BD>;
close(BD);
# colocamos os dado do bd numa array
foreach (@bd){ chomp;
($id,$nome,$email) = split(/\|/,$_);
print "Nome: $nome [<a href=\"?acao=apagar&id=-$id\">apagar</a>]<br>";
}
#  separamos o bd e criamos o link para escolher qual dado apagar
}

if($acao eq "apagar"){ #form que apaga a id
$idx = $cgi->param("id"); #pega a id a ser apagada

open(BD,"dados.txt");
@bd=<BD>;
close(BD);
# colocamos os dado do bd numa array
foreach (@bd){ chomp;
($id,$nome,$email) = split(/\|/,$_);
if($idx ne $id){ # se a id escolhida for diferente da do bd, é colocada numa array
push(@bd2,"$id|$nome|$email");
} # se for igual, nao faz nada
}


open(BD2,">dados.txt"); #abre o bd para gravar os dados
foreach $linha(@bd2){ #poe cada linha do bd em $linha
print BD2 "$linha\n"; #grava $linha no bd
}
close(BD2); #fecha o bd
print "A id <b>$idx</b> foi apagada com sucesso!"; #mostra msg avisando
}

Espero que isso ajude em algo
abraços
Editado pela equipe Forum Wmo, favor ler as regras.

#2 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 06/06/2004, 07:53

No código que eu tenho aqui, o esquema é o contrario do seu:
O script vai vendo quais as linhas são diferentes dá minha e vai gravando no arquivo, ai na hora que ele encontra a linha que eu escolhi ele "passa reto" nela e continua gravando as outras.

[]'s
João Gabriel
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org

#3 Gabriel

Gabriel

    CGI & PHP até Morre!!!!

  • Usuários
  • 573 posts
  • Sexo:Não informado
  • Localidade:Santo Andre-SP
  • Interesses:http://www.divulgue-me.com

Posted 06/06/2004, 10:54

pode ser tbm, so que se é interrompido a execução, vc perde todo o bd
por isso desse jeito que faço, é mais seguro
abraços
Editado pela equipe Forum Wmo, favor ler as regras.

#4 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 06/06/2004, 12:21

pode ser tbm, so que se é interrompido a execução, vc perde todo o bd
por isso desse jeito que faço, é mais seguro
abraços

Ié... realmente sua justificativa faz sentido!

Vlw

[]'s
JGCL
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq