Ir para conteúdo

POWERED BY:

Arquivado

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

Walter Chilomer

inserir vários registros de um input em duas tabelas

Recommended Posts

Mestres,

Desafio. Já lis mais de 50 posts e não resolvi.

 

Necessito gravar vários registros de um ou dois input e gravar esses dados em outra tabela.

Código do Select e do Input:

 

<?php

if(!isset($codi_aca))

 

blablabla...

 

}else {

$sql = ("SELECT * FROM tab_esp_aca WHERE aca_cod_aca like '$codi_aca' ORDER BY aca_ordem");

 

blablabla ...

 

<td>

<font class="f6">

<?=$result[aca_item_anal_def]?>

</font>

</td>

 

<td class="cab_center" bgcolor = "<?=$bgcolor?>">

<font class="f6">

<input type="text" name="ao_def_detec" size="4" maxlength="2">

<input type="hidden" name="defeito[]" value="ao_def_detec">

</font>

</td>

 

<td class="cab_center" bgcolor = "<?=$bgcolor?>">

<font class="f6">

<input type="text" name="ao_def_res" size="10" maxlength="20">

<input type="hidden" name="defeito[]" value="ao_def_res">

</font>

</td>

</tr>

 

<?php

}

}

?>

 

Código para Inserir na primeira tabela: AQUI ESTÁ OK- INSERE CORRETAMENTE TODOS OS DADOS

 

blablabla...

 

 

<?php

}

}

else

{

$registro = $_POST["ao_ID];

$codi_aca = $_POST["ao_cod_aca"];

 

blablabla...

 

 

mysql_query("INSERT INTO tab_analise_aca VALUES(

'$registro',

 

 

'$cli_ID')");

 

blablabla...

 

if(mysql_affected_rows()>0)

include "registro_incluir.php";

else {

$erro = mysql_error();

echo "<p align='center'>Erro: $erro</p>";

}

}

 

 

 

Código para inserir na segunda tabela: AQUI QUE ESTÁ DANDO ERRO!!!

 

 

$registre = $_POST["ao_def_ID"]; GRAVA OK

$ao_ID = mysql_insert_id(); GRAVA OK - Campo chave

$codi_aca = $_POST["ao_cod_aca"]; GRAVA OK - Campo chave

$def_detec = $_POST["ao_def_detec"]; NÃO GRAVA

$def_res = $_POST["ao_def_res"]; NÃO GRAVA OU APENAS O PRIMEIRO CARACTERE DO INPUT

 

foreach($_POST["defeito] as $defeito) {

 

mysql_query("INSERT INTO tab_analise_aca_def VALUES (

'$registre',

'$ao_ID',

'$codi_aca',

(".$defeito."),

(".$defeito."))");

}

 

if(mysql_affected_rows()>0)

include "registro_incluir.php";

else {

$erro = mysql_error();

echo "<p align='center'>Erro: $erro</p>";

}

mysql_close($con);

?>

 

 

Já tentei várias formas com FOREACH e COUNT

Dependendo da modelagem do script grava o dobro de registros, mas sempre o ultimo input - Campos def_detec e def_res. ou grava apenas um registro, também com o ultimo input.

 

-------------------------------------------------------------------------------------------------------

Inclusive uma postagem do William Bruno de 16/04/2009:

echo '<td><input type="text" name="codigo[]" value="'.$linha['codigo'].'" /></td>';

 

ai você terá um array: $_POST['codigo']

com posições..

 

$_POST['codigo'][0]

$_POST['codigo'][1

 

etc., etc.

Não rolou nada.

-----------------------------------------------------------------------------------------------------

 

Onde está o segredo? Alguém tem alguma idéia?

 

Aí está o desafio.

 

Fiquem bem!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, a dificuldade nao é no mysql e sim no php.

 

vc esta fazendo bagunca com o array do php. vc nao pede como array e nao trata como array e como conselho geral se algo esta estranho peca um echo pra ver o conteudo.

 

repassando para php

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.