Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.Há muitos anos(mais de 6) que não se deve mais usar as extensões mysql_*
veja:
Atualize seu php
e use mysqli ou pdo
>
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.
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='...
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.

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)
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!
Telegram me: @washalbano
Olá!
Pra melhor compreensão
Mostre-nos o .sql da tabela onde o sr. pretende salvar os valores dos n checkboxes