Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley F Souza

Colocar dois ou mais valores da CheckBox no BD?

Recommended Posts

Como faço pra quando selecionar duas checkbox na hora do envio do formulário ser inseridas no banco de dados tipo 1,2 ? porque quando faço a inserção o maior valor do checkbox é inserido, queria que não fosse assim.

Alguém tem ideia?

Obrigado desde já agradeço :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o exemplo abaixo de como capturar os dados de um CHECKBOX:

 

teste.php:

<form action="" method="post">
<input type="checkbox" name="frutas[]" value="Uva"> Uva<br>
<input type="checkbox" name="frutas[]" value="Banana"> Banana<br>
<input type="checkbox" name="frutas[]" value="Morango"> Morango<br>
<input type="checkbox" name="frutas[]" value="Abacaxi"> Abacaxi<br>
<input type="submit" name="submit" value="ENVIAR">
</form>

<?
if($_POST)
{
echo "<pre>";
print_r($_POST);
echo "</pre>";
$saladaDeFrutas = implode("-", $_POST['frutas']);
echo "<br />SALADA DE FRUTAS COM: " . $saladaDeFrutas;
}
?>

 

 

Selecionando Banana, Morango e Abacaxi, teremos a saída:

Array

(

[frutas] => Array

(

[0] => Banana

[1] => Morango

[2] => Abacaxi

)

 

[submit] => ENVIAR

)

 

SALADA DE FRUTAS COM: Banana-Morango-Abacaxi

 

Agora é com você, adaptar ao seu uso.

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu certo eu partes :/

Tipo ele não insere um registro somente no banco de dados, ele insere o tanto de valores que eu selecionei, explicando:

Se eu marco 3 checkbox eu queria que no banco de dados ele ficassem assim,

ID 01 / Nome Wesley / Pagina 1,2,3 /

Mas ele fica assim

ID 01 / Nome Wesley / Pagina 1 /

ID 02 / Nome Wesley / Pagina 2 /

ID 03 / Nome Wesley / Pagina 3 /

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando o mesmo exemplo das frutas do jhrhp:

$frutas = implode(', ', $_POST['frutas']);
echo $frutas;

 

Velhooo, eu to impressionado de como tu me salva *-*

 

Impressionado mesmo hahaah muito obrigado era isso msmo q eu queria :D

 

Usando o mesmo exemplo das frutas do jhrhp:

$frutas = implode(', ', $_POST['frutas']);
echo $frutas;

 

Gabriel, mais uma dúvida :/

Achei que iria dar certo se eu colocasse 1,2,3 quando eu faço o SELECT e coloco WHERE pagina=2

se estiver assim 1,2 ele não seleciona, tem que estar 2,1 ele só pega o primeiro registro, você tem alguma solução pra isso O.o?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como? Na hora de fazer um SELECT, você põe um WHERE com esses números das páginas e não funciona? É isso?

 

 

Sim, porque tipo eu coloquei o checkbox e assim eu seleciono as páginas que quero que apareça no exemplo 1,2,3 só que ao fazer o select ele só pega o primeiro valor que no caso 1 ou 2 ou 3 mas só se ele estiver em primeiro se ele estiver assim 1,2,3 o valor 3 não aparece :/ agora se estiver 3,2,1 ai ele aparece se eu fizer o SELECT com o WHERE pagina=3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa e demora, eu tinha ido na minha vó.

Bem, você pode fazer um explode e depois um implode:

$explode = explode(',', $paginas);
$implode = implode(' AND ', $explode);

SELECT * FROM `tabela`
WHERE
$implode

Não sei se irá funcionar, mas teste. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa e demora, eu tinha ido na minha vó.

Bem, você pode fazer um explode e depois um implode:

$explode = explode(',', $paginas);
$implode = implode(' AND ', $explode);

SELECT * FROM `tabela`
WHERE
$implode

Não sei se irá funcionar, mas teste. :thumbsup:

 

 

Não deu :S carakas tah complicado ein, achei que era só agrupar o valor das checkboxes e acrescentar um virgula nelas e depois fazer o select e estando 1,2,3 se eu requisitasse no WHERE o valor 2 por mais que estivesse 1,2,3 ele iria reconhecer de boa mas, não! ele só reconhece o primeiro valor que no caso é 1 :/

 

Não teria mais outra alternativa?

Ou ainda não entendeu o que expliquei?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, tente me explicar novamente. Esse ta complicado mesmo.

 

Opa ;D vou tentar ser simples mas explicar realmente bem, bom vamos lá...

 

Quando envio o formulário e marco exemplo: 2 check boxes o valor no banco de dados fica assim 1,2 se eu marco uma fica normal assim: 1 ... ok até ai tudo bem.

 

Quando vou fazer a seleção do anúncio cada página é numerada exemplo: Home = 1 / Contatos = 2

 

Então faço o

"SELECT tabela WHERE pagina = 2"

mas como o valor no banco de dados está assim "1,2" ele não exibe mas, se eu colocar

"SELECT tabela WHERE pagina = 1"

ai ele exibe normalmente, agora se o valor estiver assim "2,1" e eu fazer o select assim:

"SELECT tabela WHERE pagina = 2" 

ai ele exibe mas se eu fizer

"SELECT tabela WHERE pagina = 1"

ai ele não exibe, resumindo...

 

Ele só exibe no primeiro número, se tiver 1,2,3,4,5,6,7,8,9,10 ... e eu for em uma página que tem a numeração 8 ele não vai fazer a seleção e só vai fazer a seleção na página que tenha o primeiro número q no caso é o 1

 

 

Entendeu melhor agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer selecionar as páginas num mesmo SELECT?

Tipo:

SELECT * FROM `tabela`
WHERE
`pagina` = '1'
AND
`pagina` = '2'

Se for, tente mudar o explode para isso:

No explode, terá que haver o conteúdo da coluna 'Pagina' da tabela:

$explode = explode(',', $paginas);
$frutas = "pagina = '".implode('\' AND pagina = \'', $explode).'\'';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer selecionar as páginas num mesmo SELECT?

Tipo:

SELECT * FROM `tabela`
WHERE
`pagina` = '1'
AND
`pagina` = '2'

Se for, tente mudar o explode para isso:

No explode, terá que haver o conteúdo da coluna 'Pagina' da tabela:

$explode = explode(',', $paginas);
$frutas = "pagina = '".implode('\' AND pagina = \'', $explode).'\'';

 

É quase isso, preciso selecionar só um anuncio página só que se lá estiver 1,2 e eu colocar o where na página 2 ele não seleciona.

Agora se eu inverter no banco de dados e colcocar 2,1 ai ele selecionar o anuncio na página 2 mas não seleciona na página 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se fizer um explode (também hehe) e pegar o número?

Tipo:

$paginas = '1,2';

$explode = explode(',', $paginas);
$num1 = $explode[0];//Página 1
$num2 = $explode[1];//Página 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Suponha que o id da página esteja na variável $idPagina:

 

SELECT * FROM tabela WHERE $idPagina in (pagina)

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.