Jump to content


Photo

Check Box + Mysql


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

#1 jhrebuski

jhrebuski

    jhrhp

  • Usuários
  • 173 posts
  • Sexo:Não informado

Posted 18/06/2006, 16:49

Bom, eu queria saber como eu faço para gravar tudo que a pessoa seleciona no check em um banco de dados, eu consegui fazer, mais ele só grava um valor, e se a pessoa selecionar mais ele num grava.

Exemplo:

<input type='checkbox' name='Comida' value='arroz'>Arroz
<input type='checkbox' name='Comida' value='feijao'>Feijão
<input type='checkbox' name='Comida' value='batata'>Batata

Daí a pessoa escolhe os três, só que só entra o primeiro.
A parte que inclui esses valores na tabela esta assim:
$modificar = mysql_query("INSERT INTO " . $dbprex . "comida SET Comida='$Comida'") or print (mysql_error());

Alguem pode me ajudar?

#2 _tHeFlAsH_

_tHeFlAsH_

    Normal

  • Usuários
  • 105 posts
  • Sexo:Não informado
  • Localidade:Curitiba

Posted 18/06/2006, 17:42

opa.

1 - Seu codigo para inserir está errado. o certo seria INSERT INTO tabela (campos) values ($variavel)

2 - uma solucao facil: ou grave em campos separados (batata, arroz, feijao) ou em um campo separando por espaço

ex:

$arroz = $_POST['arroz'];
$feijao = $_POST['feijao'];
$batata = $_POST['batata'];
$tudo = $arroz." ".$feijao." ".$batata;

INSERT INTO tabela (comida) VALUES ('$tudo');

depois na hora de editar, sei la vc faz um explode

algo do tipo:

$variavel = explode(" ", $tudo);

<input type='checkbox' name='Comida' value='arroz' <? if($variavel[0] == "Arroz") { echo "checked"; } ?>>Arroz
<input type='checkbox' name='Comida' value='feijao' <? if($variavel[1] == "Feijao") { echo "checked"; } ?>>Feijão
<input type='checkbox' name='Comida' value='batata' <? if($variavel[2] == "Batata") { echo "checked"; } ?>>Batata

algo simples. veja se intendeu

abraço,

Edição feita por: _tHeFlAsH_, 18/06/2006, 17:44.

Glauco Maschio
www.glaucomaschio.com.br

#3 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 18/06/2006, 18:06

BOm, tambem existe essa outra forma aqui, que vc pode pegar todos os dados de uma vez fazendo algumas modificaçõezinhas em seu Form e depois usar o foreach()

<form method="POST">

<input type='checkbox' name='Comida[]' value='arroz'>Arroz
<input type='checkbox' name='Comida[]' value='feijao'>Feijão
<input type='checkbox' name='Comida[]' value='batata'>Batata
<input type='submit' name='submit' value='submit'>

</form>

<?
if($_POST['submit']){ // verifica se o form foi enviado

foreach($_POST['Comida'] as $r){ // pega os dados do checkbox e separa por um -
$comidas .= $r."-";

}
}
echo"$comidas";
?>

Espero ter ajuda ;)

======EDITANDO======
Esqueci do detalhe do INSERT. Faça o que o nosso amigo falou ai em cima ;)

Té mais ;)

Edição feita por: gennf, 18/06/2006, 18:08.

Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#4 _tHeFlAsH_

_tHeFlAsH_

    Normal

  • Usuários
  • 105 posts
  • Sexo:Não informado
  • Localidade:Curitiba

Posted 18/06/2006, 18:22

verdade. não em veio a cabeça foreach.. mania idiota de faze tudo com explode, haha

essa solucao do amigo acima é bem simples e rápida ;)
Glauco Maschio
www.glaucomaschio.com.br

#5 jhrebuski

jhrebuski

    jhrhp

  • Usuários
  • 173 posts
  • Sexo:Não informado

Posted 18/06/2006, 20:11

Ae thanks, usei o foreach e deu certinho, agora eu quero saber como faz para imprimir um por um e não sair tudo junto assim: arroz-feijao-batata-

Como eu faço para sair assim:
Arroz
Feijao
Batata?

#6 dbl

dbl

    Diogo Branco Leal

  • Usuários
  • 505 posts
  • Sexo:Masculino
  • Localidade:Teresópolis - RJ
  • Interesses:PHP, Firework, Photoshop, Flash, etc...

Posted 18/06/2006, 21:15

Tente assim:
<?
if($_POST['submit']){ // verifica se o form foi enviado

foreach($_POST['Comida'] as $r){ // pega os dados do checkbox e separa por um -
$comidas .= $r."<br />";

}
}
echo"$comidas";
?>

Tente assim...

[ ]''s

Edição feita por: dbl, 18/06/2006, 21:18.

dbl - Um só Deus é pai de todos, o qual é sobre todos e em todos. (Efésios - 4.6)
Posted Image

#7 jhrebuski

jhrebuski

    jhrhp

  • Usuários
  • 173 posts
  • Sexo:Não informado

Posted 19/06/2006, 12:41

Hum, assim num da, eu preciso que seje assim:
Tipo depois lá de mandar tudo certinho pro bd, dai eu preciso pegar os valores que estão lá, eu to usando uns numeros lá, esse números são os ids de uma ooutra tabela, dai fica assim depois que fica salvo no bd:
1-5-9- (exemplo)
dai eu queria saber como pegar os números, pois eu tenho que pegar eles para identificar os ids na outra tabela, tinha que ser assim:
pegar o 1, dai ele conecta em outra tabela e vê o nome correspondente a esse id, dai faz isso com os outros também, tem como fazer isso?

Até mais.

#8 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 19/06/2006, 14:50

Tem sim:

$numero = explode("-", $comidas);
echo"$numero[0]<br>
$numero[1]<br>
$numero[2]<br>";


Té mais ;)

Edição feita por: gennf, 19/06/2006, 14:50.

Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#9 jhrebuski

jhrebuski

    jhrhp

  • Usuários
  • 173 posts
  • Sexo:Não informado

Posted 19/06/2006, 18:03

Valeu deu certo, só que agora preciso de mais alguma coisa, pois assim não esta 100%, pois eu não vou saber quantos valores terão no BD, dai não tem como eu fazer assim:
$numero[0]<br>
$numero[1]<br>
$numero[2]<br>

Pois eu não vou saber quantos são, eu queria saber como faz para o script descobrir isso sozinho?

Até mais.

#10 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 19/06/2006, 19:36

Valeu deu certo, só que agora preciso de mais alguma coisa, pois assim não esta 100%, pois eu não vou saber quantos valores terão no BD, dai não tem como eu fazer assim:
$numero[0]<br>
$numero[1]<br>
$numero[2]<br>

Pois eu não vou saber quantos são, eu queria saber como faz para o script descobrir isso sozinho?

Até mais.


for($i = 0;$i < count($numero); $i++){
	$numero[$i]."<br>";
}

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog

#11 jhrebuski

jhrebuski

    jhrhp

  • Usuários
  • 173 posts
  • Sexo:Não informado

Posted 19/06/2006, 23:37

Lindo cara, perfeito, valeu mesmo.

Ae você pode postar algum site onde eu possa ler mais sobre esses negocios de $i = 0; $i++

Porque sempre vi varios códigos usando isso, mais não sei trabalhar com isso(quando eu pedi ajuda, essa ultima vez, até achei mesmo que ia usar isso mesmo).

Até mais.

#12 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 20/06/2006, 08:02

Isto nada mais é do que um dos laços de repetição.
Veja o que o Manual do PHP diz sobre o loop for():
http://br.php.net/ma...uctures.for.php

Super simples de usar.

Flws..
^_^Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




0 user(s) are reading this topic

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

IPB Skin By Virteq