Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Frankie Hummel

[Resolvido] correção no while

Recommended Posts

Pessoal tenho um script que conecta na minha base pesquisa uma tabela e monta automático uma query para mim na tela, porém quando finaliza o insert ele monta assim:

 

insert into produto ( Id, codigo, lote, produto, descricao, id_fornecedor, id_fabricante, id_filial, fornecedor, fabricante, filial, data_cad, situacao, id_unidade_compra, unidade_compraNewField, id_unidade_venda, unidade_venda, preco_custo, margem_lucro, custo_medio, preco_venda, valor_unitario, numero_doc, qtd_entrada, qtd_minima, peso_liq, peso_bruto, foto, codigo_barra, loc1, loc2, loc3, loc4, loc5, loc6, loc7, loc8, operador, status, funcionario, os, justificativa, operador_exclusao, data_exclusao, id_grupo, id_marca, edt_justificativa, operador_atualizacao, validade_produto, dias_validade,)
VALUES 
( '$Id', '$codigo', '$lote', '$produto', '$descricao', '$id_fornecedor', '$id_fabricante', '$id_filial', '$fornecedor', '$fabricante', '$filial', '$data_cad', '$situacao', '$id_unidade_compra', '$unidade_compraNewField', '$id_unidade_venda', '$unidade_venda', '$preco_custo', '$margem_lucro', '$custo_medio', '$preco_venda', '$valor_unitario', '$numero_doc', '$qtd_entrada', '$qtd_minima', '$peso_liq', '$peso_bruto', '$foto', '$codigo_barra', '$loc1', '$loc2', '$loc3', '$loc4', '$loc5', '$loc6', '$loc7', '$loc8', '$operador', '$status', '$funcionario', '$os', '$justificativa', '$operador_exclusao', '$data_exclusao', '$id_grupo', '$id_marca', '$edt_justificativa', '$operador_atualizacao', '$validade_produto', '$dias_validade',)

note que no final antes do Values ele finaliza errado assim: dias_validade,) ele coloca uma , no final e no , '$dias_validade',) ele coloca a mesma virgula. Abaixo segue o script como faço pra retirar essa virgula só do último registro?

 

<?php

$a = mysql_connect("127.0.0.1","root","");
$b = mysql_select_db("aaaaa");




echo "insert into produto (";

$showtablequery = mysql_query("SHOW COLUMNS FROM produto"); 

$qtd = 0;
while ($showtablerow = mysql_fetch_array($showtablequery)) 
{

echo " ".$showtablerow[0].",";
$qtd ++;

}


echo ")"."<br>"."VALUES "."<br>"; echo "(";










$showtablequery3 = mysql_query("SHOW COLUMNS FROM produto"); 
$qtd3 = 0;
while ($showtablerow3 = mysql_fetch_array($showtablequery3)) 
{

echo " '$".$showtablerow3[0]."',";
$qtd3 ++;

}

echo ")";


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor você concatenar os campos em uma variável e depois retornar uma substring dela:

$coluns = "";
while ($showtablerow = mysql_fetch_array($showtablequery)) 
{

$coluns .= " ".$showtablerow[0].",";
$qtd ++;

}

echo substr(0, strlen($coluns)-1); // o -1 retira a vírgula no final da string
Ai você faz o mesmo quando gerar os valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu código estava errado, o método substr deve receber uma string como parâmetro também, segue o seu código com minha idéia:

<?php

$a = mysql_connect("127.0.0.1","root","");
$b = mysql_select_db("aaaaa");

echo "insert into produto (";

$showtablequery = mysql_query("SHOW COLUMNS FROM produto"); 

$qtd = 0;
$coluns = "";
while ($showtablerow = mysql_fetch_array($showtablequery))  {

    $coluns .= " ".$showtablerow[0].",";
    $qtd ++;

}

echo substr($coluns, 0, strlen($coluns)-1);
echo ")"."<br>"."VALUES "."<br>"; echo "(";


$showtablequery3 = mysql_query("SHOW COLUMNS FROM produto"); 
$qtd3 = 0;
$values = "";
while ($showtablerow3 = mysql_fetch_array($showtablequery3)) {

    $values .= " '$".$showtablerow3[0]."',";
    $qtd3 ++;

}

echo substr($values, 0, strlen($values)-1);
echo ")";


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.