Eder Cuer 0 Denunciar post Postado Fevereiro 16, 2012 Olá pessoal aqui estou de novo procurei muito e não resolvi... Deixa eu explicar, eu tenho 2 tabelas que se relacionam, mrh(microrregião) e transportadora, nessa relação foi gerada uma outra tabela mrh_transportadora, na qual eu tenho (cod_mrh, cod_transp). No meu formulário estou fazendo um while para mostrar a microrregião de certo estado, e todas em checkbox. <?php include ("connect.php"); $consul=mysql_query("SELECT cod_mrh,nome FROM mrh WHERE cod_estado = 4"); while ($dado = mysql_fetch_array($consul)) { echo "<input type='checkbox' name='mrh[]' id='".htmlentities($dado['nome'])."' value='".htmlentities($dado['cod_mrh'])."' />" .htmlentities($dado['nome'])." " ; } ?> O problema seria o seguinte, o usuário ta cadastrando uma transportadora, ai nos checkbox ele vai escolher quais microrregiões a sua transportadora atende. Como faço pra pegar os valores e inserir na minha tabela? Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Rabelo 0 Denunciar post Postado Fevereiro 17, 2012 Olá pessoal aqui estou de novo procurei muito e não resolvi... Deixa eu explicar, eu tenho 2 tabelas que se relacionam, mrh(microrregião) e transportadora, nessa relação foi gerada uma outra tabela mrh_transportadora, na qual eu tenho (cod_mrh, cod_transp). No meu formulário estou fazendo um while para mostrar a microrregião de certo estado, e todas em checkbox. <?php include ("connect.php"); $consul=mysql_query("SELECT cod_mrh,nome FROM mrh WHERE cod_estado = 4"); while ($dado = mysql_fetch_array($consul)) { echo "<input type='checkbox' name='mrh[]' id='".htmlentities($dado['nome'])."' value='".htmlentities($dado['cod_mrh'])."' />" .htmlentities($dado['nome'])." " ; } ?> O problema seria o seguinte, o usuário ta cadastrando uma transportadora, ai nos checkbox ele vai escolher quais microrregiões a sua transportadora atende. Como faço pra pegar os valores e inserir na minha tabela? Para pegar os valores você usa $x = $_POST['nome do input']; ou $x = $_GET['nome do input']; De uma pesquisada nas diferenças deles para saber qual lhe atende mais adequadamente. A julgar pelo que você descreveu você vai precisar gerar estas variaveis dinamicamente, assim como obteve mrh[] no seu código. Para gravar estes dados use as funções como no código abaixo: function update($iug,$nome){ require 'config.php'; //$conexao = mysql_connect($mysqlhost,$mysqluser,$mysqlkey); $conexao = conect_mysql(); //$banco = mysql_select_db($mysqldb,$conexao); $query = "INSERT INTO `updates` (`iug` , `nome` ,`data` , `hora`) VALUES('$iug' , '$nome' , '$data' , '$hora')"; $runn = mysql_query($query,$conexao); if($runn){return true;} else{echo ("Update erro query: ".mysql_error()); return false;} } function conect_mysql(){ require 'config.php'; $conexao = mysql_connect($mysqlhost,$mysqluser,$mysqlkey); $banco = mysql_select_db($mysqldb,$conexao); if (!$conexao){ die ("Erro de conexao com: $host ,<BR>O seguinte erro ocorreu : ".mysql_error()); return false; } else{ if (!$banco){ die ("Erro de conexao com banco de dados: $database <BR>O seguinte erro ocorreu : ".mysql_error()); return false; } else return $conexao; } } Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Rabelo 0 Denunciar post Postado Fevereiro 17, 2012 Olá pessoal aqui estou de novo procurei muito e não resolvi... Deixa eu explicar, eu tenho 2 tabelas que se relacionam, mrh(microrregião) e transportadora, nessa relação foi gerada uma outra tabela mrh_transportadora, na qual eu tenho (cod_mrh, cod_transp). No meu formulário estou fazendo um while para mostrar a microrregião de certo estado, e todas em checkbox. <?php include ("connect.php"); $consul=mysql_query("SELECT cod_mrh,nome FROM mrh WHERE cod_estado = 4"); while ($dado = mysql_fetch_array($consul)) { echo "<input type='checkbox' name='mrh[]' id='".htmlentities($dado['nome'])."' value='".htmlentities($dado['cod_mrh'])."' />" .htmlentities($dado['nome'])." " ; } ?> O problema seria o seguinte, o usuário ta cadastrando uma transportadora, ai nos checkbox ele vai escolher quais microrregiões a sua transportadora atende. Como faço pra pegar os valores e inserir na minha tabela? Para pegar os valores você usa $x = $_POST['nome do input']; ou $x = $_GET['nome do input']; De uma pesquisada nas diferenças deles para saber qual lhe atende mais adequadamente. A julgar pelo que você descreveu você vai precisar gerar estas variaveis dinamicamente, assim como obteve mrh[] no seu código. Para gravar estes dados use as funções como no código abaixo: function update($iug,$nome){ require 'config.php'; //$conexao = mysql_connect($mysqlhost,$mysqluser,$mysqlkey); $conexao = conect_mysql(); //$banco = mysql_select_db($mysqldb,$conexao); $query = "INSERT INTO `updates` (`iug` , `nome` ,`data` , `hora`) VALUES('$iug' , '$nome' , '$data' , '$hora')"; $runn = mysql_query($query,$conexao); if($runn){return true;} else{echo ("Update erro query: ".mysql_error()); return false;} } function conect_mysql(){ require 'config.php'; $conexao = mysql_connect($mysqlhost,$mysqluser,$mysqlkey); $banco = mysql_select_db($mysqldb,$conexao); if (!$conexao){ die ("Erro de conexao com: $host ,<BR>O seguinte erro ocorreu : ".mysql_error()); return false; } else{ if (!$banco){ die ("Erro de conexao com banco de dados: $database <BR>O seguinte erro ocorreu : ".mysql_error()); return false; } else return $conexao; } } Compartilhar este post Link para o post Compartilhar em outros sites
Eder Cuer 0 Denunciar post Postado Fevereiro 23, 2012 Eae Rafael, acho que você não entendeu, como pegar uma variavel via post ou get eu sei. O problema está em inserir varios dados no banco de dados ao mesmo tempo. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Fevereiro 24, 2012 Deixa eu entender melhor o relacionamento entre as suas tabelas. você tem 01 tabela com as Microrregiões, 01 tabela com as Transprtadoras e uma terceira tabela que você relaciona as 02 primeiras tabelas? você faz o cadastro de determinada Transportadora e seleciona as Microrregiões (checkbox) que esta transportadora atende. Seria essa a idéia? Compartilhar este post Link para o post Compartilhar em outros sites
Eder Cuer 0 Denunciar post Postado Março 1, 2012 Isso mesmo manolegal, ai na pagina de cadastro das transportadoras eu tenho varios checkbox com as microrregiões onde a pessoa escolhe qual a transportadora atende. Eu fiz o seguinte: $sql2 = "SELECT cod_transp FROM transportadora WHERE cnpj='$cnpj'"; $res = mysql_query($sql2); $dados = mysql_fetch_array($res); $id = $dados['cod_transp']; foreach($_POST['mrh'] as $value){ echo $value; $insert = mysql_query("INSERT INTO mrh_transportadora VALUES ('$id', '$value')"); } Mas não está inserindo os vários registros, registra só 1. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 3, 2012 Eder Nesta situação eu faria o seguinte: criaria um formulário para o cadastro das microrregiões e outro formulário para o cadastro das transportadoras e a "associação" das regiões atendidas pela transportadora. Neste segundo formulário, faria a inserção dos dados nas 02 tabelas: "transportadora" e "mrh_transportadora". No seu caso pelo que vi, você cadastra primeiro as transportadoras e em um terceiro formulário faz a associação transportadora/regiões. Seria isso? Gostaria de entender bem a situação. Se possível, poste mais códigos. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Cuer 0 Denunciar post Postado Março 5, 2012 Quase isso Manolegal, na verdade o cadastro de microrregiões é feita pelo adm do site, ai quando uma pessoa vai cadastrar uma transportadora vai ta la já a microrregião. Mas ai no caso uso um formulario unico, ai coleto as informações de quais microrregiões a transportadora atende, pego o codigo da transportadora e insiro na tabela gerada pelo relacionamento. O que ta acontecendo é que fiz um foreach mas ta inserindo só um registro. Meu codigo ta bem grande, mas vou tentar postar as partes mais importantes. cadastrotr.php (aqui é meu formulario, e estou chamando a pagina que monta os check vindo do banco): <tr> <td colspan="2">Microregiões (escolha as microregiões que sua transportadora atende)</td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> <?php include("include/mrh.php"); ?> </td> <td> </td> </tr> Agora é a pagina que chamei via include mrh.php: <div id="box-toggle"> Microrregião do Acre <div class="tgl"> <?php include ("connect.php"); $consul=mysql_query("SELECT cod_mrh,nome FROM mrh WHERE cod_estado = 4"); while ($dado = mysql_fetch_array($consul)) { echo "<input type='checkbox' name='mrh[]' id='".htmlentities($dado['nome'])."' value='".htmlentities($dado['cod_mrh'])."' />" .htmlentities($dado['nome'])." " ; } ?> </div> </div> e agora a pagina que eu tento inserir os dados (completo) cadastratr.php: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Freta Brasil</title> </head> <?php include("include/connect.php"); include("include/validacnpj.php"); $nome = mysql_escape_string(trim($_POST['nome'])); $razao = mysql_escape_string(trim($_POST['razao'])); $cnpj = mysql_escape_string(trim($_POST['cnpj'])); $natureza = mysql_escape_string(trim($_POST['natureza'])); $inscr = mysql_escape_string(trim($_POST['inscr'])); $cep = mysql_escape_string(trim($_POST['cep'])); $endereco = mysql_escape_string(trim($_POST['endereco'])); $bairro = mysql_escape_string(trim($_POST['bairro'])); $cod_cid = mysql_escape_string(trim($_POST['cidade'])); $telefone = mysql_escape_string(trim($_POST['telefone'])); $celular = mysql_escape_string(trim($_POST['celular'])); $fax = mysql_escape_string(trim($_POST['fax'])); $contato = mysql_escape_string(trim($_POST['contato'])); $contato2 = mysql_escape_string(trim($_POST['contato2'])); $email = mysql_escape_string(trim($_POST['email'])); $conf_email = mysql_escape_string(trim($_POST['conf_email'])); $login = mysql_escape_string(trim($_POST['login'])); $senha = md5(mysql_escape_string(trim($_POST['senha']))); $conf_senha = md5(mysql_escape_string(trim($_POST['conf_senha']))); $respeso = mysql_escape_string(trim($_POST['respeso'])); $rescomp = mysql_escape_string(trim($_POST['rescomp'])); $resalt = mysql_escape_string(trim($_POST['resalt'])); $resliq = mysql_escape_string(trim($_POST['resliq'])); $resgranel = mysql_escape_string(trim($_POST['resgranel'])); $resviva = mysql_escape_string(trim($_POST['resviva'])); $resdanger = mysql_escape_string(trim($_POST['resdanger'])); $resoutra = mysql_escape_string(trim($_POST['resoutra'])); $politica = mysql_escape_string(trim($_POST['politica'])); $term = mysql_escape_string(trim($_POST['term'])); $vercnpj = "SELECT * FROM transportadora WHERE cnpj = '$cnpj'"; $verlogin = "SELECT * FROM usuario WHERE login = '$login'"; $v = mysql_query($vercnpj); $l = mysql_query($verlogin); if(mysql_num_rows($v)>0){ echo "CNPJ ja cadastrado em nossa base de dados!"; }elseif(mysql_num_rows($l)>0){ echo "Este login ja esta sendo usado!"; }elseif(empty($nome) || empty($razao) || empty($cnpj) || empty($endereco) || empty($telefone) || empty($email) || empty($conf_email) || empty($natureza) || empty($inscr) || empty($bairro) || empty($cep) || empty($login) || empty($senha) || empty($conf_senha) || empty($respeso) || empty($rescomp) || empty($resalt) || empty($resliq) || empty($resgranel) || empty($resviva) || empty($resdanger) || empty($cod_cid) || empty($politica) || empty($term)){ echo 'Por favor, digite todos os campos obrigatrios!</br> <a href="cadastro.php">Voltar</a> '; }elseif(isCNPJ($cnpj)){ $sql = "INSERT INTO transportadora (razao_social, nome, natureza, cep, bairro, endereco, cnpj, insc_est, telefone, fax, contato1, contato2, celular, email, login, senha, rest_peso, rest_comp, rest_altura, rest_granel, rest_liquido, rest_viva, rest_perigosa, rest_outras, cod_cid) VALUES('$razao', '$nome', '$natureza', '$cep', '$bairro', '$endereco', '$cnpj', '$inscr', '$telefone', '$fax', '$contato', '$contato2', '$celular', '$email', '$login', '$senha', '$respeso', '$rescomp', '$resalt', '$resgranel', '$resliq', '$resviva', '$resdanger', '$resoutra', $cod_cid);"; mysql_query($sql,$con); echo mysql_error(); $sql2 = "SELECT cod_transp FROM transportadora WHERE cnpj='$cnpj'"; $res = mysql_query($sql2); $dados = mysql_fetch_array($res); $id = $dados['cod_transp']; foreach($_POST['mrh'] as $value){ echo $value; $insert = mysql_query("INSERT INTO mrh_transportadora VALUES ('$id', '$value')"); } }else{ echo "CNPJ inválido!"; } ?> </html> Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 6, 2012 Eder A idéia é mais ou menos a seguinte: cadastratr.php $mrh = $_POST ["mrh"]; // Recebe os dados "check" das regiões marcadas pelo usuário (01 região ou mais) $nome = mysql_escape_string(trim($_POST['nome'])); // Recebe nome transportadora, etc $razao = mysql_escape_string(trim($_POST['razao'])); ............ $id = $dados['cod_transp']; // Pelo que entendi, seria o id da transportadora em questão // Cria laço para inserir os dados na tabela "mrh_transportadora", podendo inserir várias linhas for($i=0; $i<count($mrh); $i++) { $insert = mysql_query("INSERT INTO mrh_transportadora (id_transportadora, id_regiao) VALUES ('$id', '$mrh[$i]')"); } // Considerei "id_transportadora" e "id_regiao" os nomes das colunas da sua tabela "mrh_transportadora" Testa aí e posta o resultado. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites
Eder Cuer 0 Denunciar post Postado Março 7, 2012 Manolegal valeu pela força cara :thumbsup: Achei o que estava ocorrendo no meu código, vou explicar Minha tabela é assim: mrh_transportadora cod_mrh cod_transp E na hora de inserir eu tava invertendo os codigos e também não estava colocando os campos: foreach($_POST['mrh'] as $value){ echo $value; $insert = mysql_query("INSERT INTO mrh_transportadora VALUES ('$id', '$value')"); } Ai eu só coloquei os campos da tabela e inverti $id com o $value: foreach($_POST['mrh'] as $value){ echo $value; $insert = mysql_query("INSERT INTO mrh_transportadora(cod_mrh, cod_transp) VALUES ('$value', '$id')"); } E ta funcionado agora :clap: Nossa cara brigadão mesmo por ajudar Compartilhar este post Link para o post Compartilhar em outros sites