Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

andrepcg

verificar POST de um form e inserir em BD

Mensagens Recomendadas

andrepcg

Tenho um codigo php que separa as linhas de uma caixa de texto e interpreta cada linha.

eu queria que cada linha fosse verificada quanto à sua validade e depois inserida em BD.

basicamente seria assim: SE a linha estiver OK, então insere na BD, SE estiver mal, NÃO insere e passa à proxima linha.

queria que me ajudassem a criar uma funçao para a verificação de cada linha.

obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
andrepcg

ok, essa parte do Estar OK é feita por mim mas vai verificar a linha e se já existir na base de dados, passa à linha seguinte.

mas já agora, peço ajuda tambem nessa parte de checkar a base de dados para confirmar se nao existe nenhum.

o Estar mal tem a ver com a verificação de uma hash e se nao corresponder aos parametros, não é inserida e passamos à seguinte.

SE a linha não existir na base de dados e se for verificada (segundo os meus parametros), então insere e passamos à linha seguinte. SE a linha está verificada e existir na BD, então NÃO insere na BD e passa à linha seguinte

já nao trabalho com php há muito tempo e estou um bocado enferrujado. se nao for pedir muito, gostava que me ensinassem tambem a contar as linhas que foram inseridas na BD de modo que "De um total de 50 linhas (faz explode à lista atraves de \n e conta), 4 foram inseridas"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caya

Pouco ou nada percebi do que precisas, mas cá vai a minha tentativa:

foreach ($linhas as $linha) {
   $result = // vai buscar a db um registo igual a essa tal linha
   if (!$result) {
      if ($linha == 'estar ok') {
         //insere linha na db
      }
   }
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
andrepcg

percebendo ou não, conseguiste ajudar-me :D

mais 2 coisas por agora.

1) o meu form está a enviar info linha a linha mas se deixarmos linhas em branco, ele interpreta essas linhas. como é que posso fazer para remover todas as linhas em branco do POST?

2) gostava que me ensinassem tambem a contar as linhas que foram inseridas na BD de modo que "De um total de 50 linhas (faz explode à lista atraves de "\n" e conta-as), 4 foram inseridas"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caya
// relativamente ao teu ponto 1, provavelmente há formas mais simples de o fazer, mas esta foi a primeira que me veio à cabeça
$temp = explode('\n', $_POST['textarea']);
$linhas = array();
foreach ($temp as $linha) {
   if (!empty($linha)) {
      $linhas[] = $linha;
   }
}
$total = 0;
foreach ($linhas as $linha) {
   $result = // vai buscar a db um registo igual a essa tal linha
   if (!$result) {
      if ($linha == 'estar ok') {
         $total++; // o $total vai ficar com o numero total de linhas inseridas
         //insere linha na db
      }
   }
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
andrepcg

nao consegui por usar a tua maneira de remover espaços.

estava a usar esta

function removeEmptyLines($string){
return preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $string);
}

depois usava a funçao no $_POST e supostamente removia as linhas em branco. mas nao está a funcionar muito bem, pois nao as remove todas. tento colocar linhas brancas no inicio, no fim, pelo meio e nunca as consegue remover todas. se conseguires optimizar esta função...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.