Ocdigital 2 Denunciar post Postado Julho 23, 2012 Bom dia Pessoal, estou com problemas ao inserir dados com virgulas por exemplo 21,00 só aceita 2100, dá o Seguinte erro ERRO: Column count doesn't match value count at row 1 estou fazendo a persistência dos dados com o seguinte código.. <!--Grava os dados do formulario na tabela--> <?php mysql_connect('localhost','root',''); mysql_selectdb('banco'); function gravar($tabela) { $val = end($_POST); $pos = array_search($val, $_POST); unset($_POST[$pos]); foreach ($_POST as $campo => $val) { $campos[] = $campo; $conteudo[] = mysql_real_escape_string(strip_tags($val)); } $insert = "INSERT INTO $tabela(".implode(',',$campos).") VALUES('".str_replace(",","','",implode(',',$conteudo))."')"; mysql_query($insert) or die ('ERRO: '.mysql_error()); } echo gravar('usuario'); ?> Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Quelipe 15 Denunciar post Postado Julho 23, 2012 Float: 21.00 At+ Compartilhar este post Link para o post Compartilhar em outros sites
Wesley David 20 Denunciar post Postado Julho 23, 2012 Observe o seu código, você está usando um implode e transformando tudo em uma string separando por virgula, quando você utiliza o replace você transforma todas as virgulas em colunas, o que inclui a virgula do valor, com isso você cria mais um campo que não existe. Não utilize este modo para adicionar os valores pois qualquer virgula em qualquer campo pode gerar um erro ou cadastrar informação em campo errado. Tenta desta forma: for($i=0; $i < sizeof($conteudo); $i++) $conteudo[$i] = "'" . $conteudo[$i] . "'"; $conteudo = implode(',', $conteudo); Compartilhar este post Link para o post Compartilhar em outros sites
Ocdigital 2 Denunciar post Postado Julho 25, 2012 Cara tentei fazer aqui mas não deu certo, onde devo substituir ? Compartilhar este post Link para o post Compartilhar em outros sites
Wesley David 20 Denunciar post Postado Julho 26, 2012 Cara tentei fazer aqui mas não deu certo, onde devo substituir ? for($i=0; $i < sizeof($conteudo); $i++) $conteudo[$i] = "'" . $conteudo[$i] . "'"; $conteudo = implode(',', $conteudo); $insert = "INSERT INTO $tabela(".implode(',',$campos).") VALUES ($conteudo)"; mysql_query($insert) or die ('ERRO: '.mysql_error()); Não testei, mas acredito que funciona certinho Compartilhar este post Link para o post Compartilhar em outros sites
Ocdigital 2 Denunciar post Postado Julho 26, 2012 Perfeito Cara!!!! valeu mesmo :clap: Compartilhar este post Link para o post Compartilhar em outros sites