Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Giullyanny

[Resolvido] inserir em duas tables e buscar o id de uma delas

Recommended Posts

Essa foi minha ultima tentativa, estou querendo fazer o seguinte, coloquei um form q ao msmo tento alimenta duas tables no mysql...

o q eu estou querendo é, o sql "$insertProd" pegar o id dela e inserir logo no sql "$insertNiveis". Sei q uso o mysql_insert_id, mas n estou conseguindo a ultima tentativa minha foi fazer um update usando o mysql_insert_id($insertPro)...

 

Tudo esta funcionando, inserindo todos os campos sem algum erro, mas gostaria de saber se isso é possível. E como eu poderia fazer...

 

if ($_GET['p'] == 'ins'){
$insertProd = "INSERT INTO nutricao_produtos VALUES (NULL, '$indicacaoProd', '$composicaoProd', '$eventuaisProd', '$usarProd', '$conservacaoProd', '$validadeProd', '$embalagemProd', '$nomeProd', '$pesoProd')";

$insertNiveis = "INSERT INTO nutricao_niveisgarantia VALUES (NULL, NULL, '$n1Produtos', '$n1ValorProdutos', '$n2Produtos', '$n2ValorProdutos', '$n3Produtos', '$n3ValorProdutos', '$n4Produtos', '$n4ValorProdutos', '$n5Produtos', '$n5ValorProdutos', '$n6Produtos', '$n6ValorProdutos', '$n7Produtos', '$n7ValorProdutos', '$n8Produtos', '$n8ValorProdutos', '$n9Produtos', '$n9ValorProdutos', '$n10Produtos', '$n10ValorProdutos', '$n11Produtos', '$n11ValorProdutos', '$n12Produtos', '$n12ValorProdutos', '$n13Produtos', '$n13ValorProdutos', '$n14Produtos', '$n14ValorProdutos', '$n15Produtos', '$n15ValorProdutos', '$n16Produtos', '$n16ValorProdutos')";
if (mysql_query($insertProd)){
	if (!mysql_query($insertNiveis)){
		$uID = mysql_query("UPDATE nutricao_niveisgarantia SET idProdutos='". mysql_insert_id($insertProd));
		echo "<script>alert('Erro ao inserirdados! Erro 02');</script>";
		mysql_query($insert) or die (mysql_error($insertNiveis));
	}

}
else{
	echo "<script>alert('Erro ao inserirdados! Erro 01');</script>";
	mysql_query($insert) or die (mysql_error($insertProd));
}
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um identificador resource. Assim:

if ($_GET['p'] == 'ins'){ 
       $insertProd = "INSERT INTO nutricao_produtos VALUES (NULL, '$indicacaoProd', '$composicaoProd', '$eventuaisProd', '$usarProd', '$conservacaoProd', '$validadeProd', '$embalagemProd', '$nomeProd', '$pesoProd')"; 

       $insertNiveis = "INSERT INTO nutricao_niveisgarantia VALUES (NULL, NULL, '$n1Produtos', '$n1ValorProdutos', '$n2Produtos', '$n2ValorProdutos', '$n3Produtos', '$n3ValorProdutos', '$n4Produtos', '$n4ValorProdutos', '$n5Produtos', '$n5ValorProdutos', '$n6Produtos', '$n6ValorProdutos', '$n7Produtos', '$n7ValorProdutos', '$n8Produtos', '$n8ValorProdutos', '$n9Produtos', '$n9ValorProdutos', '$n10Produtos', '$n10ValorProdutos', '$n11Produtos', '$n11ValorProdutos', '$n12Produtos', '$n12ValorProdutos', '$n13Produtos', '$n13ValorProdutos', '$n14Produtos', '$n14ValorProdutos', '$n15Produtos', '$n15ValorProdutos', '$n16Produtos', '$n16ValorProdutos')"; 
$resource = mysql_query($insertProd); //Identificador
       if ($resource){ 
               if (!mysql_query($insertNiveis)){ 
                       $uID = mysql_query("UPDATE nutricao_niveisgarantia SET idProdutos='". mysql_insert_id($resource)); // Identificador
                       echo "<script>alert('Erro ao inserirdados! Erro 02');</script>"; 
                       mysql_query($insert) or die (mysql_error($insertNiveis)); 
               } 

       } 
       else{ 
               echo "<script>alert('Erro ao inserirdados! Erro 01');</script>"; 
               mysql_query($insert) or die (mysql_error($insertProd)); 
       } 
} 

 

Comentei as linhas que alterei.

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. pensa bem, isso:

$uID = mysql_query("UPDATE nutricao_niveisgarantia SET idProdutos=". mysql_insert_id($insertProd));

não faz sentido.

 

Leia o teu SQL:

Atualize a tabela `nutricao_niveisgarantia`, colocando no campo `idProdutos` o último ID inserido

 

a pergunta:

onde ? quais linhas isso vai afetar?

 

resposta:

todas

 

o fluxo correto, é este:

$sql_1 = "INSERT INTO primeira (id, nome )VALUES( NULL, 'Bruno')";
mysql_query( $sql_1 )or die( mysql_error() );//executa a query aqui

$last_insert_id = mysql_insert_id();//pegando o ID da ultima inserção

$sql_2 = "INSERT INTO segunda (id, id_primeira, nome ) VALUES ( NULL, $last_insert_id, 'Rocha' )";//usando aqui nesse outro INSERT
mysql_query( $sql_2 )or die( mysql_error() );//executa a segunda query aqui

entendeu ?

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.