madera 0 Denunciar post Postado Maio 5, 2005 Olá amigos, meu problema é o seguinte:Eu tenho uma página com uma formulário de inserção de dados em duas tabelas, "alunos" (id, nome, end, tel, etc) e "documentos" (id, id_aluno, cód_doc)O propósito é fazer o cadastro de um aluno e marcar os documentos que ele está devendo.Para coletar os valores para o campo cod_doc da tabela "documentos" eu coloquei vários checkbox com o respectivos valores. Tá mais ou menos assim, e o q eu gostaria que acontecesse: Id: 23 ☺ RG valor = 1Nome: _______ ☺ C. Nascimento valor = 2 End: _______ ☺ Foto valor = 3 tel: _____Quando eu marcar o checkbox da foto por exemplo ele adiciona uma tupla na tabela "documentos" com os seguintes valores: id = 1Id_aluno = 23 cod_doc = 3se eu marcar outro checkbox, por exemplo RG, ele adiciona outra tupla na tabela "documentos": id = 2Id_aluno = 23 cod_doc = 1e assim por diante! Se eu não marcar nenhum checkbox, ele não faiz nada logicamente.O q eu fiz aqui ele adiciona o id do aluno na tabela documentos automaticamente, mesmo se eu naum marcar nenhum checkbox, e também se marcar dois ele adiciona só um.Alguém pode me ajudar??Desde já obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Senshi 0 Denunciar post Postado Maio 5, 2005 Posta o script de inserção....só para analizar....SENSHI Compartilhar este post Link para o post Compartilhar em outros sites
madera 0 Denunciar post Postado Maio 5, 2005 No checkbox tah assim: <html> <input type=checkbox name="coddoc[]" value="1">RG<br /> <input type=checkbox name="coddoc[]" value="2">C. Nascimento<br /> <input type=checkbox name="coddoc[]" value="3">Foto<br /> </html> No php: PHP [*] [*]<?php [*] [*]//Insere os dados na tabela alunos [*]if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) { [*] $insertSQL = sprintf("INSERT INTO alunos (id, nome, end) VALUES (%s, %s, %s)", [*] GetSQLValueString($HTTP_POST_VARS['id'], "int"), [*] GetSQLValueString($HTTP_POST_VARS['nome'], "text"), [*] GetSQLValueString($HTTP_POST_VARS['end'], "text"), [*] [*] mysql_select_db($database_sistemashs, $sistemashs); [*] $Result1 = mysql_query($insertSQL, $sistemashs) or die(mysql_error()); [*]} [*] [*]//Insere os dados na tabela documentos [*]if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) { [*] [*]//Condição que verifica se algum checkbox foi marcado [*]if(isset($_POST["coddoc"])){ [*] [*]//Loop para verificar quais foram marcados [*]foreach($_POST["coddoc"] as $coddoc){ [*] [*]//Insere os dados na tabela [*]$insertSQL = sprintf("INSERT INTO docpendente (cod, id_aluno, coddoc) VALUES (%s, %s, %s)", [*]GetSQLValueString($HTTP_POST_VARS['cod'], "int"), [*] [*]//Aqui ele pega o valor digitado no id do aluno da tabela alunos [*]GetSQLValueString($HTTP_POST_VARS['id'], "int"), [*] [*]//Aqui ele insere o valor do checkbox [*]GetSQLValueString($HTTP_POST_VARS[$coddoc]), "int" ); [*] [*] mysql_select_db($database_sistemashs, $sistemashs); [*] $Result1 = mysql_query($insertSQL, $sistemashs) or die(mysql_error()); [*] } [*] } [*]} [*]?> [*] Eu fiz assim, ve se está certo!! Aqui, o problema é que como o cod na tabela documentos é chave primária, ele não vai aceitar inserir o mesmo valor, então eu precisava de um tipo de contador! Compartilhar este post Link para o post Compartilhar em outros sites
madera 0 Denunciar post Postado Maio 5, 2005 Eu pensei assim: se eu não entrar com nenhum valor no campo cod de tabela documentos (referencia no código como "docpendente") e no mysql eu colocar a opção de "auto-incrementa" neste campo, então não precisarei do contador! (??) Esqueci de dizer que o "GetSQLValueString" eh uma função: PHP [*] [*]function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") [*]{ [*] $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; [*] [*] switch ($theType) { [*] case "text": [*] $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; [*] break; [*] case "long": [*] case "int": [*] $theValue = ($theValue != "") ? intval($theValue) : "NULL"; [*] break; [*] case "int[]": [*] $theValue = ($theValue != "") ? intval($theValue) : "NULL"; [*] break; [*] case "double": [*] $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; [*] break; [*] case "date": [*] $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; [*] break; [*] case "defined": [*] $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; [*] break; [*] } [*] return $theValue; [*]} [*] Tá dando tudo certo, o unico problema é que o campo 'coddoc' está definido como um array e dá pau nessa função aí de cima. Compartilhar este post Link para o post Compartilhar em outros sites
madera 0 Denunciar post Postado Maio 5, 2005 Olá amigos, gostaria de falar que não é mais necessária a ajuda de vcs por enquanto, achei um modo de fazer o que eu quero!Se alguém quer fazer alguma coisa parecida e quiser saber como eu fiz, é só perdir que eu posto aqui os detalhes.Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
fabfernandes 0 Denunciar post Postado Maio 6, 2005 Poste seu sucesso ai pra gente ver. :) Compartilhar este post Link para o post Compartilhar em outros sites