Ir para conteúdo

POWERED BY:

Arquivado

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

titocrf123

UPDATE em apenas um campo

Recommended Posts

Bom dia senhores. Estou com uma dúvida em relação ao update. Tenho dois inserts na mesma página de cadastro. No caso, na página html eu preencho todos os campos e clico em "Cadastrar Produto" para tabela "tb_detpedido". Depois, clico em "Finalizar Pedido" e envio somente alguns dados na "tb_cadpedido". O problema, é que na tabela tb_cadpedido, tenho um campo chamado "ID". Na tabela "tb_detpedido" mesma coisa. A rotina era gerar o ID na tb_cadpedido e copiar para ID da tb_detpedido. Quando eu puxasse o cadastro finalizado na tb_cadpedido pela id, viria os produtos com a mesma id. Vou postar o código que estou utilizando.

elseif (isset($_POST["CadProdutos"])){

$ValorProd = 0;  

if($OBSProd == ""){

$OBSProd = ".";

mysql_select_db("mermaid", $con);
mysql_query("INSERT INTO tb_detpedido (CodCli,CodProd,ValorProd,QTDProd,OBSProd) 
        VALUES ('$CodCli','$CodProd','$ValorProd','$QTDProd','$OBSProd')");

print "<script> alert('Produto cadastrado com sucesso!'); window.history.go(-1); </SCRIPT>\n";

}



}elseif (isset($_POST["FinalizaPedido"])){



mysql_select_db("mermaid", $con);
$pedido = mysql_query("INSERT INTO tb_cadpedido (CodCli,IDVend,DtCadastro,HrCadastro,DtEnt,HrEntIni1,HrEntFim1,HrEntIni2,HrEntFim2,OBSPed) 
VALUES ('$CodCli','$IDVend','$DtCadastro','$HrCadastro','$DtEnt','$HrEntIni1','$HrEntFim1','$HrEntIni2','$HrEntFim2','$OBSPed')");

$inserir = mysql_insert_id();


$con = mysql_connect("10.1.1.88","teste", "teste") or
die('Não foi possível conectar');

$query = "SELECT ID FROM tb_detpedido WHERE CodCli = '$CodCli' AND ID ='Null' ";
$procura = mysql_query($query,$con);
if (!$procura) die ("Execução de consulta gerou o seguinte erro no MYSQL-->" . mysql_error());

if(mysql_num_rows($procura)>0){

mysql_select_db("mermaid", $con);
$sql= mysql_query("UPDATE tb_detpedido SET ID='$ID' WHERE ID='$inserir'");



mysql_close($con);


print "<script> alert('Pedido finalizado com sucesso111!'); </SCRIPT>\n";


}
else{
mysql_close($con);

print "<script> alert('Pedido finalizado com sucesso!'); </SCRIPT>\n";

}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, já que o ID da primeira tabela é auto_increment, você só vai conseguir pegar o ID gerado através da função mysqli_insert_id() que retorna o ultimo id gerado, do último insert.

 

http://www.php.net/manual/pt_BR/mysqli.insert-id.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza. Isso eu consegui fazer. Porém, quando eu vou fazer o UPDATE para atualizar a ID da tb_detpedido, ela atualiza todos os campos ID da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do modo que vocês fez está atualizando todos os dados correto ? significa que todos os registros estão com o mesmo ID.. aí você tem que corrigir isso na hora do insert nessa tabela para que os IDs fiquem diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O certo não é usar o mesmo ID(chave primaria) nas duas tabelas e sim, a tb_cadpedido tem uma chave estrangeira da outra, no caso serio um campo chamado por exemplo id_detpedido aonde ira receber o ID da tabela tb_detpedido que assim poderá fazer uma melhor manipulação e fica bem mais estruturado.

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.