apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Dando um UP para a minha questão.
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.

fernandouhu
Super Participante
Registrado
661 Mensagens
10 Curtidas
tipo vc põe um campo na sua tabela do mysql com o nome de ativo por exemplo, se o checkbox tiver marcado vc coloca o valor 1 neste campo senão estiver vc coloca 0, saca?
AMD Sempron64 300+ 754/Asus K8V-X/512MB DDR/MSI GeForce 5600FX/SATA Seagate 80GB 7200RPM /ATA100 MAXTOR 40GB 5400RPM
philix
Super Participante
Registrado
946 Mensagens
14 Curtidas
USE o tipo bool do mysql que na verdade é um alias para tinyint que um inteiro bem pequeno: 1(verdadeiro) ou 0(falso)
"
A Matemática é a ginástica mental necessária na tentativa da compreenssão do universo"
Linus Torvalds
apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Valeu fernando, entendi sua resposta.
philix, não entendi sua proposta, como fiaria?
Eu estava lendo a documentação do MySQL:
http://dev.mysql.com/doc/refman/4.1/pt/column-types.html
Mas não consegui compreender qual a sintaxe a ser utilizada.
Ah, e para armazenar um textarea, eu uso varchar mesmo?
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.

philix
Super Participante
Registrado
946 Mensagens
14 Curtidas
nome VARCHAR ( 45 ) NOT NULL
campo BOOL NOT NULL
"
A Matemática é a ginástica mental necessária na tentativa da compreenssão do universo"
Linus Torvalds
apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Beleza, valeu, reputação merecida.
Só mais uma coisa:
Qual a diferença entre colocar 'NOT NULL UNIQUE' e 'NOT NULL'.
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.

Guitarrista...
Super Participante
Registrado
837 Mensagens
14 Curtidas
Com NOT NULL UNIQUE o valor precisa "Não ser Nulo e Único na tabela" e com Not Null precisa apenas não ser nulo =)
Conhecimento é saber que tomate é fruta. Sabedoria é saber que não se coloca tomates em uma salada de frutas.
apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Ah certo, e se eu quiser que ele possa ser nulo e não único, como ficaria a sintaxe?
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.

philix
Super Participante
Registrado
946 Mensagens
14 Curtidas
Ah certo, e se eu quiser que ele possa ser nulo e não único, como ficaria a sintaxe?
Só com o NOT NULL sem o UNIQUE
campo VARCHAR(255) NOT NULL
Ele só não pode ser nulo, mas pode ser repetido.
Outra coisa: se o campo for primary key ele já vai ser único, ou seja, toda tabela tem um campo que tem que ser único: a chave primária:
codigo int not null primary key
"
A Matemática é a ginástica mental necessária na tentativa da compreenssão do universo"
Linus Torvalds
apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Humm, compreendo.
1) Qual a função de se ter uma chave primária?
2) Um campo nulo compreende em, por exemplo, um campo vazio, certo?
Então por exemplo eu tenho uma tabela que vai de janeiro a dezembro, mas ainda estamos em setembro, portanto os 3 meses que faltam não estarão preenchidos. Funcionarão normalmente com o NOT NULL, estou correto?
Grato!
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.

jofrelscalve...
Veterano
Registrado
1.3K Mensagens
51 Curtidas
A chave primária tem 2 funções básicas:
Garantir que cada registro pode ser acessado de forma independente.
Permitir algumas otimizações, a mais comum é a criação de "listas de valores" por exemplo você pode criar uma tabela de opções de pagamento, e cada opção de pagamento recebe um número como sendo a chave primária, na tabela de pagamentos você aramzenaria apenas o número da opção e com isso deixaria o banco de dados menor.
Campo nulo e campo vazio podem ser diferentes dependendo do banco de dados, no MySQL me deparei que se insiro a string '' (vazia) isso é diferente de inserir NULL, já no access '' é a mesma coisa que "" que é a mesma coisa que NULL (e se marcar NULO), tem coisas que só a MS faz (ajudam um pouco na maioria das vezes, mas complicam absurdamente nums poucos casos especificos) ....
AH! e voltando à grande dúvida (eu ia postar na semana passada, mas tô sem internet desde então....) como você acessa o valor do id do Checkbox no PHP? (até onde sei isso não é possivel, você acessa só o name, e se submetido)
Melhore o futuro do fórum: Diga se a dica funcionou ou conte-nos como conseguiu resolver a sua dúvida!
Se eu errar ou for pouco claro, reclame! Quando possivel eu tentarei melhorar.
apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Eu tava pensando que dentro do input eu coloco:
value="ATIVO" <?php echo $dados["ativo] == "ATIVO" ? "checked=\"checked\"" : ""; ?>
E no MySQL fica assim:
ativo ENUM ( 'ATIVO' ) NOT NULL,
Ou seja, o PHP chama o valor de "ativo", que poderá ser ATIVO ou DESATIVO. Se for ATIVO, ele deixa o campo marcado.
Ou seja, se tiver ATIVO, fica marcado e quando alguém salvar, o value se manterá ATIVO.
Mas se não estiver marcado, no MYSQL não haverá valor algum, portanto ativo não terá o valor ATIVO, conseqüentemente não marcará o campo e quando for salvo ou editado, e o valor ATIVO não será enviado ao MySQL. E quando for novamente acessado, estará desmarcado.
Só não sei se o ENUM aceita ter um único valor. Mas eu acredito que sim, ou então eu coloco dois valores, mesmo que apenas 1 seja usado.
Eu ainda poderia fazer assim:
value="1" <?php echo $dados["ativo] == "1" ? "checked=\"checked\"" : ""; ?>
E no MySQL:
ativo BOOL NOT NULL
Ou seja, se ele for marcado, enviará o valor 1 para o mysql e quando for solicitado, verificará que o valor é 1 e marcará novamente.
Mas se não for 1, ele continuará desmarcado e, conseqüentemente, não enviará o valor 1 para o mysql.
Estou certo?
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.

jofrelscalve...
Veterano
Registrado
1.3K Mensagens
51 Curtidas
Vamos dividir o problema em 3 fases:
1) O PHP lê o Banco de dados e monta a página com o formulário.
2) O HTML está no cliente, onde o navegante pode clicar nas coisas, einteragir de outra formas (movimentos de mouse, pressionamentos de teclas, etc... )
3) O resultado "final" das interações do usuário é enviado ao servidor para que o PHP atualize o Banco de dados.
ACHO que você está se preucupando apenas com as fases 1 e 2 e atransição que existe entre elas. Minha dúvida está em como você vai fazer a fase 3, sendo que a transição 2-3 que você bolou não me parece possivel.
O HTML envia pelo que me lembro apenas = para os checkbox SELECIONADOS (onde seria o valor da propriedade name do checkbox e seria o valor de sua propriedade value). Você pode é claro passar 2 valores, de várias formas (as mais comuns são concatenação/des-concanteação e passando um valor no name e outro no value (já você vai saber que ele foi selecionado pelo simples fato dele existir....))
No mais acho que em termos de lógica e imaginação você já está bem encaminhado.
Melhore o futuro do fórum: Diga se a dica funcionou ou conte-nos como conseguiu resolver a sua dúvida!
Se eu errar ou for pouco claro, reclame! Quando possivel eu tentarei melhorar.
apterix
Zumbi
Registrado
9.4K Mensagens
171 Curtidas
Eu devo testar isso aí hoje ou no máximo amanhã cedo e te informo a que conclusões/resultados cheguei.
Eu concordo com seu raciocínio, só é uma pena eu não poder argumentar mais devido ao meu pequeno conhecimento com php e mysql.
Mas vamos lá. =)
Hospedagem de sites low-end: www.ilax.com.br Com cPanel 11 e suporte técnico inteligente.
