BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 arrumei isso, agora ele cadastrou no banco. so que o cadastro ficou. produto que se chama teste ele gravou so o t. valor que e 180.00 ele gravou apenas 1.00 o que ficou de errado?? function moeda($get_valor) { $source = array('.', ','); $replace = array('', '.'); $valor = str_replace($source, $replace, $get_valor); //remove os pontos e substitui a virgula pelo ponto return $valor; //retorna o valor formatado para gravar no banco } $id_os = $_POST['id_os']; echo $qtd = $_POST['qtd']; $desconto = moeda($_POST['desconto']); $x = $_POST[ 'prod' ]; foreach($x as &$key){ $prod = explode("_", $key); $produto = $prod[0]; $valor = $prod[1]; } $posicoes = count($qtd);//pega a quantidade de itens for( $i = 0; $i < $posicoes; $i++){ //monta a query echo $query = "INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES ({$id_os},{$qtd[$i]},'{$produto[$i]}',{$valor[$i]},{$desconto[$i]})"; //aqui você tem que ver se você ta recebendo cada uma dessas variáveis como "arrays", $sql = mysql_query($query) or die(mysql_error());//executa a query } echo"Itens cadastrados com sucesso"; Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 Na sua tabela do banco de dados, qual o tipo e tamanho dos campos? Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 no produto e um varchar, ja que e texto mesmo. no valor e float(9,2) Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 da um echo "INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES ({$id_os},{$qtd[$i]},'{$produto[$i]}',{$valor[$i]},{$desconto[$i]})"; e veja se os dados estão certos. Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 da o seguinte: INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES (1,,'t',1,12.00) o problema e que so esta vindo o t, e o 1 Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 Cara tem algum erros nos valores que são recebidos, vai printando as variaveis em trechos do código e tenta descobrir onde está está vindo com valor errado. Se for logo no $_POST, então o erro está na parte do formulário. Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 testando aqui. tirei o $valor[$i] por $valor. assim ele cadastra o primeiro, se cadastar mais de um item ele coloca nos 2 itens o primeiro. sera o que pode ser??? quando coloco INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES (1,1,'t',1,10.00)INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES (1,1,'e',8,10.00) Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 Qual o resultado de: $posicoes = count($qtd); $posicoes está valendo o valor correto? Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 quando eu como te falei. terei o [$i] e coloquei sem. cadastrei 2 valores e ele vai, so que o valor do primeiro array fica nos 2 valores. entao quer dizer que o count funciona, o problema ta que o valor sai do foreach sem os valores completos, ja tentei todas as coisas possivel. Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 funcionar é uma coisa, funcionar como você deseja é outra. poem o for dentro do foreach e ve no que dá. Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 continuou gravando so o inicio. aff, nao sei mais o que fazer, preciso d+ disso. o cliente quer poder adicionar mais itens sem precisar ficar clicando em cadastrar, so ir incluindo e essa m***** nao funciona. Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 Como está atualmente? EDIT Cara eu to analisando aqui e acho que vocÊ nem precisa desse for, seu problema está na lógico, porém não estou conseguindo precisar o que precisa mexer sem testar. Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 cara fiz assim: $id_os = $_POST['id_os']; $qtd = $_POST['qtd']; $desconto = moeda($_POST['desconto']); $posicoes = count($qtd);//pega a quantidade de itens for( $i = 0; $i < $posicoes; $i++){ //monta a query $x = $_POST[ 'prod' ]; foreach($x as &$key){ $prod = explode("_", $key); $produto = $prod[0]; $valor = $prod[1]; } $query = "INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES ({$id_os},{$qtd[$i]},'{$produto[$i]}',{$valor[$i]},{$desconto[$i]})"; //aqui você tem que ver se você ta recebendo cada uma dessas variáveis como "arrays", $sql = mysql_query($query) or die(mysql_error());//executa a query } echo"Itens cadastrados com sucesso"; assim: $id_os = $_POST['id_os']; $qtd = $_POST['qtd']; $desconto = moeda($_POST['desconto']); $x = $_POST[ 'prod' ]; $posicoes = count($qtd);//pega a quantidade de itens for( $i = 0; $i < $posicoes; $i++){ //monta a query foreach($x as &$key){ $prod = explode("_", $key); $produto = $prod[0]; $valor = $prod[1]; } $query = "INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES ({$id_os},{$qtd[$i]},'{$produto[$i]}',{$valor[$i]},{$desconto[$i]})"; //aqui você tem que ver se você ta recebendo cada uma dessas variáveis como "arrays", $sql = mysql_query($query) or die(mysql_error());//executa a query } echo"Itens cadastrados com sucesso"; e ambas cadastra os dados incompleto. e tira valores que nao existe. Full texts id id_os qtd produto valor desconto 20 1 1 e 8.00 10.00 19 1 1 t 1.00 10.0 e tinha que cadastrar. teste 180.00 Ferro 180.00 Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 Cara eu to sem imaginação hoje, ta difícil imaginar seu código rodando. Mas tenta assim e ve no que dá function moeda($get_valor) { $source = array('.', ','); $replace = array('', '.'); $valor = str_replace($source, $replace, $get_valor); //remove os pontos e substitui a virgula pelo ponto return $valor; //retorna o valor formatado para gravar no banco } $id_os = $_POST['id_os']; echo $qtd = $_POST['qtd']; $desconto = moeda($_POST['desconto']); $x = $_POST[ 'prod' ]; $i = 0; foreach($x as &$key){ $prod = explode("_", $key); $produto = $prod[0]; $valor = $prod[1]; //monta a query echo $query = "INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES ({$id_os},{$qtd[$i]},'{$produto[$i]}',{$valor[$i]},{$desconto[$i]})"; //aqui você tem que ver se você ta recebendo cada uma dessas variáveis como "arrays", $sql = mysql_query($query) or die(mysql_error());//executa a query $i++ } echo"Itens cadastrados com sucesso"; EDIT ADD a váriavel $i ao foreach Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 deu nao. deu o erro: INSERT INTO `os_itens` (`id_os`,`qtd`,`produto`,`valor`,`desconto`) VALUES (1,,'F',1,)You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''F',1,)' at line 1 mais assim como ele vai fazer se tem mais de um cadastro??? Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Fevereiro 27, 2012 Depois que postei fiz uma correção, sinceramente não sei se está certo adicionando o $i. Estou fazendo de cabeça. To tentando resolver seu problema toda vez que uma correção de bug em um sistema da errada, então to meio confuso hoje, mais que o normal. rs Desculpa as confusões. Compartilhar este post Link para o post Compartilhar em outros sites
BAR WEB 0 Denunciar post Postado Fevereiro 27, 2012 cara vlw. dentro do que passou por ultimo, so fiz uma pequena alteraçãozinha e deu certo. vlw Compartilhar este post Link para o post Compartilhar em outros sites