não faz update quando uso $id

Enviada por Roberto C 
Roberto C
não faz update quando uso $id
25 de April de 2017 às 05:37PM
fiz um formulário para alterar alguns dados de uma consulta quando eu coloco o ID manualmente no comando update ele faz as alterações mas quando uso $id ele não altera os dados.

Onde estou errando?

os select para popular os campos está assim:

$p=mysql_query("SELECT a.* , b.nome FROM `controle_pedido` a INNER JOIN `clientes` b ON b.id = a.clienteAt WHERE a.`id` = $id");

if (mysql_num_rows($p)==0)
echo "Pedido não encontrado!!!";
$detalhe=mysql_fetch_array($p);

$d=mysql_query("SELECT a.* FROM `detalhe_pedido` a INNER JOIN `controle_pedido` b
ON a.controle_id = b.id
WHERE b.id = $id");

$prod=mysql_query("SELECT * FROM `lc_cat` a ORDER BY a.nome");


o update está assim:
Quando eu mudo de $id para o numero do id ele faz o update corretamente

if (isset($_POST['acao']) && $_POST['acao'] == 1) {
$id = $_GET['id'];
{

$total = $_POST['total'];
$nf = $_POST['nf'];
$descricao = $_POST['descricao'];
$id = $_POST['id'];


mysql_query("UPDATE controle_pedido SET total = '$total', nf = '$nf', descricao = '$descricao' WHERE id ='$id'");
mysql_query("DELETE FROM detalhe_pedido WHERE controle_id = '$id'");


foreach($_POST['cat_id'] AS $indice => $cat_id) {
if(!empty($cat_id)) {
echo mysql_query("INSERT INTO detalhe_pedido (cat_id,qtd,valor_unid,desconto,valor_und_desc,valor_total,controle_id,tipo) values
('".$_POST['cat_id'][$indice]."', '".$_POST['qtd'][$indice]."', '".$_POST['valor_unid'][$indice]."', '".$_POST['desconto'][$indice]."', '".$_POST['valor_und_desc'][$indice]."', '".$_POST['valor_total'][$indice]."','$id','4')");
}
}

echo mysql_error();


exit();
}}


e o formulário assim:


<form form id="cad" name="cad" method="post" >
<input type="hidden" name="acao" value="1" />
<strong>ID:
<strong><b><font size="3"> <font color="#000000">Data :</font></strong>
<input type="text" name="data" name="dtConcat" size="11" maxlength="10" value="<?php echo $detalhe['dtConcat']?>" readonly /> <br><br>
<strong><b><font size="3" > <font color="#000000">Cliente :</strong>
<input type="text" size="80" name="clienteAt" size="11" maxlength="10" value="<?php echo $detalhe['nome']?>" readonly />
<br><br>
<strong><b><font size="3"> <font color="#000000">Nota Fiscal : <input type="text" name="nf" size="11" maxlength="10" value="<?php echo $detalhe['nf']?>" />
<strong><b><font size="3"> <font color="#000000">Total : <input type="text" name="total" size="11" maxlength="10" value="<?php echo $detalhe['total']?>" readonly /><br><br>
<strong><b><font size="3"> <font color="#000000">Observação : <br>
<input type="text" name="descricao" size="90" maxlength="90" value="<?php echo $detalhe['descricao']?>" />
<br><br>
<table border="0" cellpadding="2" cellspacing="4" class="tblDet">
<tr>
<td class="bd_titulo">Produto</td>
<td class="bd_titulo">Quantidade</td>
<td class="bd_titulo">Valor Unitario</td>
<td class="bd_titulo">Desconto %</td>
<td class="bd_titulo">Vlr Unt Desconto</td>
<td class="bd_titulo">Valor Total</td>
</tr>
<tr class="linhas">
<td><select name="cat_id[]" onchange="setProdLinha(this)" class="cat_id">
<option value="">Selecione</option>
<td>
<input type="text" name="qtd[]" class="qtd"
onblur="Calc(this)" required name="qtd" size="11"
style="text-align:center" />
</td>
<td>
<input name="valor_unid[]" type="text" required name="valor_unid"
maxlength="30" size="11"
style="text-align:center"
class="valor_unid" />
</td>
<td>
<input name="desconto[]" type="text" required name="desconto"
maxlength="30" size="11" onblur="Calc(this)"
style="text-align:center"
class="desconto" />
</td>
<td>
<input name="valor_und_desc[]" type="text" required name="valor_und_desc"
maxlength="30" size="11"
style="text-align:center"
class="valor_und_desc" />
</td>
<td>
<input type="text" name="valor_total[]"
class="vtotal" readonly="readonly" onblur="somaTotalGeral()" size="11"
style="text-align:center"/>
</td>
<td><a href="#" class="removerCampo" title="Remover linha"><img src="img/excluir.jpg" border="0" /></a></td>
</tr>
<tr>
<td colspan="4">
<a href="#" class="adicionarCampo" title="Adicionar item" onclick="somaTotalGeral()"><img src="img/+.jpg" border="0" /></a> <br><br>
<p><input type="submit" value="Alterar" onclick="somaTotalGeral()" /></p>
Jayme A. C. Gimenez
Re: não faz update quando uso $id
26 de April de 2017 às 08:13PM
Bom, vamos tentar (é muito código para olharmos num simples fórum; então, tentemos isolar o problema a partir de suas dicas):

1) os campos do formulário estão sendo preenchidos corretamente pelas queries de select?
2) O $id também vem de um campo desse form, é isso?
Felipe M. @LipESprY
Re: não faz update quando uso $id
27 de April de 2017 às 02:51AM
Fala aí, rapazes.

Observando o seguinte:

> [...]
>if (isset($_POST['acao']) && $_POST['acao'] == 1) {
>$id = $_GET['id'];
>{
>
>$total = $_POST['total'];
>$nf = $_POST['nf'];
>$descricao = $_POST['descricao'];
>$id = $_POST['id'];
> [...]

Fica fácil observar que vc está recebendo o $id ora via POST, ora via GET:

>$id = $_GET['id'];
>$id = $_POST['id'];


Deve-se observar, também, que no formulário não existe o input com o name="id", para ser tratado na página que o trata.

Aconselho postar o código por completo e dividido em partes (formulário e página a qual se trata o formulário).

Abração!
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.