Jump to content
Rafael Freitas

Retornar dados do banco de dados e selecionar somente alguns com checkbox

Recommended Posts

Fala galera!

Estou travado em uma parte do projeto que estou fazendo, quem puder me ajudar, desde já agradeço.

Seguinte,  eu tenho alguns dados gravados em uma tabela no banco. Eu recupero estes dados exibindo em uma tabela o nome do parametro "p_descricao" e um checkbox do lado, segue abaixo:

               <?php 
$max = 200; 
if(!$pagina){
$pagina = 1;
}
$inicio = $pagina -1;
$inicio = $inicio * $max;




  $consulta = ("SELECT * FROM parametros WHERE p_tipo_analise='MICROBIOLOGICA'");
$p_id = $_GET["p_id"];

$query = mysql_query("$consulta LIMIT $inicio,$max");
$todos = mysql_query($consulta);
$total = mysql_num_rows($todos);

$tp = $total / $max;
$regLinha = 4;
  $i = ceil($max / $regLinha);
  $j = 1;
  $z = 0;
echo "         
<table width=100% class='tabela_parametros_itens' border=1><tr>
  ";
while($x = mysql_fetch_array($query)){
echo "<td>   <input type='checkbox' name='parametro' value='" .$x[p_descricao]."' checked>    " .$x[p_id]." - " .$x[p_descricao]."</td>";
    $z++;
    if($z == $regLinha and $j < $i){
      echo "</tr><tr>";
      $z = 0;
      $j++;
    }
    if($z == $regLinha and $j == $i){
      echo "</tr>";
    }
}
  
echo "</table>";

Eu coloquei checked para todos estarem marcados, até aí tudo certo. O que acontece é que quando eu cadastro, ele só grava no banco, o último registro, ou então se eu desmarco todos e deixo somente 1 marcado, aí ele grava certo.

 

O que eu queria era gravar todos os registros que estiverem marcados com a checkbox e não só 1.

 

Conto com a ajuda de vocês.

 

Abraço.

Share this post


Link to post
Share on other sites

Olá!
Pra melhor compreensão
Mostre-nos o .sql da tabela onde o sr. pretende salvar os valores dos n checkboxes

Share this post


Link to post
Share on other sites

Há muitos anos(mais de 6) que não se deve mais usar as extensões mysql_*

veja:

image.png.5cea9440e6414085e1d3b89a3ae82cfb.png

Atualize seu php
e use mysqli ou pdo

Share this post


Link to post
Share on other sites
2 horas atrás, washalbano disse:

Olá!
Pra melhor compreensão
Mostre-nos o .sql da tabela onde o sr. pretende salvar os valores dos n checkboxes

Boa tarde, amigo !

O campo no mysql que recebe essa informação é o l_parametro.

Share this post


Link to post
Share on other sites

Para salvar os valores de todos os checkboxes em um único campo mysql:
Se forem inteiros, pode ser uma string com algum tipo de separador

Ou pode-se usar json notation, no php use json_encode()

Os names dos checkboxes precisam ser do tipo array:   <input ... name='parametro[]' value='...

Share this post


Link to post
Share on other sites

Boa noite, Tetsuo.

Eu dei uma olhada no Json, mas não sei se seria bem o que eu preciso. Talvez eu tenha me expressado mal.

Assim, eu faço a consulta no banco, ele me retorna os resultados listados na tabela, aí eu coloquei um checkbox pra cada resultado, conforme imagem anexada.

 

Ele até exibe da maneira correta, só que só está salvando no banco, o último parâmetro cadastrado. Ou seja, de todos esses, só o NITRITO entra no campo "parametro" do banco de dados.

 

Tipo, depois de cadastrado no banco, no caso todos os parametros selecionados, eu precisaria que ele exibisse novamente, quando buscado pelo usuario. Então minha dúvida é: como faria pra cadastrar todos os resultados, se seria em mais de 1 campo no banco de dados, pra que depois eu pudesse exibi-los novamente. Já que eles estão agora em outra tabela, cada um com um id diferente.

 

Entende?

Abraço.

Sem Título-2.jpg

Share this post


Link to post
Share on other sites

Olá!
Consigo pensar em 3 soluções.

Como já passamos por isso, as sugestões do @tetsuo foram bem claras.

A) Num campo sql do tipo varchar(q é o mesmo que string), guarde as ids dos checkboxes, usando algum separador(vírgula, pipebar, sinal de menos, underline, ...)

B) Num campo sql do tipo varchar, guarde um json notation, que seria simplesmente salvar/atualizar um json_encode do array dos checkboxes.

C) Crie uma tabela mysql intermediária, do tipo N pra N, onde o sr. salvaria a fk do checkbox e a fk da OS(Ordem de Serviço/Cotação ou disso aí, seja lá o que for)

Share this post


Link to post
Share on other sites

Ainda não consegui botar pra funcionar.

 

Alguém poderia dar um help pelo Whatsapp ao algo assim? Manda uma mensagem.

Meu prazo está se esgotando e travei nessa parte =/

 

Abraço!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Salvatore
      Então, eu estou gravando uns dados no bancos de dados usando text area, mas quando eu dou espaço ou algo do tipo fica assim
       
      Ex :aaaa\r\naaaaaa\r\n
       
      onde esses \r\n são espaços e outras coisas, e ficam sendo exibidos quando eles retorna para a pagina
      alguém sabe como resolvo isso?
    • By drx
      Olá pessoal!
      Estou com um probleminha aqui. Estou me embrenhando pelos ajax e jquery. Muito interessante. 
      Eu peguei um exemplo e é bem simples. Só que não retorna a mensagem para a div.
       
      Eu tenho uma div em pagina1.php onde o usuário entra com um número identificador em um campo textfield.
      Após entrar com o número identificador, solicito a verificação em uma outra página.php onde tenho uma consulta no mysql.
      O echo da consulta é: Existente ou Inexistente. A consulta é feita pelo número identificador. Fiz a verificação e retorna perfeitamente,
      Porém eu quero que ao verificar, a mensagem retorne para minha outra div logo abaixo na pagina1.php
      Vou passar o código para facilitar....
       
      <html>
      <head>
       
      <script src="js/jquery.js"></script>
      <script>
      $(function(){
        $('#form').submit(function(){
           $.ajax({
             url: 'x_consultar_patro.php',
             type: 'POST',
             data: $('#form').serialize(),
             success:function ( data ) {
                 if (data != '') {
                     $('#frm_cadastro').html( data );
                 }
               }
             });
           return false;
         });
      });
      </script>
       
      </head>
       
      <body>

      <div id="frm_cadastro"></div>

      <form id="form" method="post" action="">
        <input type="text" name="codpatro" id="codpatro"/>
        <input type="submit" name="btn_procurar" id="btn_procurar" value="Procurar"/>
      </form>
       
      </body>
      <html>
       
       

    • By kelvinferraz
      Boa tarde Pessoal tudo bem?
       
      Estou criando uma aplicação basica para um usuario logar e acessar os dados dessa aplicação via um dashboard. 
       
      Surgiu uma dúvida, eu gostaria de publicar isso para que qualquer usuario possa acessar via web por exemplo: www.meusite.com/login
       
      A partir desse login defeniria qual base de dados esse usuário esta vinculado, por exemplo:
       
      O usuário acessa a area de login do site:
      Login: UsuarioX ------> Conecta ao db_usuariox
       
      Login:UsuarioY -------> Conecta ao db_usuarioy
       
      Como posso fazer isso?
       
      Estou aprendendo mais afundo PHP agora, então se puderem me dar uma dica e uma forma simples para entendimento ficarei grato.
    • By Juan Barcelos
      Galera bom dia !
      Estou desenvolvendo um projeto no qual o usuario ao fazer o 1º login tem que criar um personagem e depois seguir ao menu do sistema.
      Ao efetuar o 2º Login se o usuario já possuir um personagem pode seguir direto para o menu do sistema caso contrario vai para a criação do personagem.
      Eu nao estou conseguindo relaziar esta condição estou utilizando baco de dados mysql(PHPMyadmin) ja tentei de varias formas alguem poderia me ajudar.
       
    • By Luckshor
      Olá pessoal, tudo bem?
       
      Sou iniciante no MySQL, essa semana veio uma dúvida de 10 milhões de dólares.
       
      O Chefinho querido me entregou uma planilha excel com 554 mil registros e me pediu para inserir isso na tabela para fazer levantamento de algumas informações.
      Aiiii me vêm aquele dúvida...
       
      Fazer 554 mil INSERT INTO (') ???
       
      INSERT INTO `tab_teste_cliente` (`id_cliente`, `cnpj`, `razao_social`) VALUES ('NULL,'12345678901234','Empresa Linda');

      Massssss... quando eu exporto uma tabela no MySQL, ele faz aqueles inserts com 200 valores.
      Isso torna o INSERT mais rápido é melhor certo?

      Então há alguma forma de converter o Excel para um arquivo SQL com esses Inserts múltiplos e facilitar minha vida?  
      Algum site, script, gambiarra, subterfúgio técnico ou contato divino para fazer isso?
       
       
      Obrigado, pela ajuda pessoal até mais!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.