Ir para conteúdo

POWERED BY:

Arquivado

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

grasi

odbc

Recommended Posts

:o gente estou com uma dúvidaestou com php + banco de dados em access, usei o tutorial do ODBC daqui e deu certinho, mas o problema é que ele tem 3 tabelas, qdo uso o comando insert ele só insere em uma tabela, mesmo que o formulario que ira passar os valores esteja todo preenchido, essas 2 tabelas ele não insere, ele simplesmente repete a linha anterior com os dados que ela ja tinha. Eis um trecho do código, alguém pode me dar um help?$eSqli ="INSERT INTO $Table1 (Ct_Mb_Adulto, Ct_Mb_Crianca, Ct_Pb_Adulto, Ct_Pb_Crianca, Ubh_Psf, Ubh_Posto, Ubh_Centro, Ubh_Umista, Ubs_Psf, Ubs_Posto, Ubs_Centro, Ubs_Umista)"; $eSqli .= "VALUES ('$Ct_Mb_Adulto', '$Ct_Mb_Crianca', '$Ct_Pb_Adulto', '$Ct_Pb_Crianca', '$Ubh_Psf', '$Ubh_Posto', '$Ubh_Centro', '$Ubh_Umista', '$Ubs_Psf', '$Ubs_Posto', '$Ubs_Centro', '$Ubs_Umista');"; $eSqli ="INSERT INTO $Table2 (C_Mb, C_Pb, C_Nc, Et_Mb, Et_Pb, Et_Nc)"; $eSqli .= "VALUES ('$C_Mb', '$C_Pb', '$C_Nc', '$Et_Mb', '$Et_Pb', '$Et_Nc);"; $sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, note que no último insert você executa a seguinte linha:

PHP [/tr][tr]$sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados");

[/tr]

 

Então... você, deve fazer o mesmo para o primeiro insert.

 

Deve ficar +- assim:

PHP [/tr][tr]

$eSqli ="INSERT INTO $Table1 (Ct_Mb_Adulto, Ct_Mb_Crianca, Ct_Pb_Adulto, Ct_Pb_Crianca, Ubh_Psf, Ubh_Posto, Ubh_Centro, Ubh_Umista, Ubs_Psf, Ubs_Posto, Ubs_Centro, Ubs_Umista)";

$eSqli .= "VALUES ('$Ct_Mb_Adulto', '$Ct_Mb_Crianca', '$Ct_Pb_Adulto', '$Ct_Pb_Crianca', '$Ubh_Psf', '$Ubh_Posto', '$Ubh_Centro', '$Ubh_Umista', '$Ubs_Psf', '$Ubs_Posto', '$Ubs_Centro', '$Ubs_Umista');";

//*********************

//AQUI GRAVA TABLE1

//*********************

$sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados");

 

 

$eSqli ="INSERT INTO $Table2 (C_Mb, C_Pb, C_Nc, Et_Mb, Et_Pb, Et_Nc)";

$eSqli .= "VALUES ('$C_Mb', '$C_Pb', '$C_Nc', '$Et_Mb', '$Et_Pb', '$Et_Nc);";

 

//*********************

//AQUI GRAVA TABLE1

//*********************

$sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados");

[/tr]

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Walace gostaria de agradecer a paciência e boa vontade em me ajudar! :) bom, fiz o que você sugeriu, como não deu certo to mandando na íntegra o código pra você ver se não fiz alguma besteira.....<?php// Variaveis fixas global $Host, $User, $Password, $Base, $Table, $Link; global $Table1, $Table2, $Table3, $Table4, $Table5, $Table6; $Host=""; $User=""; $Password=""; $Base = "projhansen97"; $Table1 = "Acesso_PQT_OMS"; // Núm de Cartelas $Table2 = "Casos_em_Registro"; // casos em registro período $Table3 = "Municipio"; $Table4 = "MunicipioTrocar"; $Table5 = "Novos_Casos"; // tabela de novos casos $Table6 = "Responsavel"; //----- Incluir registro global $Host, $User, $Password, $Base, $Table, $Link; global $Nome, $Ender, $Fone, $Fax, $Empr, $Email, $Anot, $Msg; global $eSql, $eSqla, $eSqle, $eSqli, $eSqlc, $resp; global $eSqli1, $eSqli2, $eSqli3, $eSqli4, $eSqli5, $eSqli6; global $Reg, $processo, $mNome, $sql1, $sql2, $sql5; global $con, $sql, $sql_statement, $sql_statement1, $sql_statement2, $sql_statement5; global $Ct_Mb_Adulto, $Ct_Mb_Crianca, $Ct_Pb_Adulto, $Ct_Pb_Crianca, $Ubh_Psf, $Ubh_Posto, $Ubh_Centro, $Ubh_Umista, $Ubs_Psf, $Ubs_Posto, $Ubs_Centro, $Ubs_Umista; global $C_Mb, $C_Pb, $C_Nc, $Et_Mb, $Et_Pb, $Et_Nc; global $Pblu_Pb, $Pblu_Nc, $M_Mb, $M_Pb, $M_Nc, $C15_Mb, $C15_Pb, $C15_Nc, $Cg2_Mb, $Cg2_Pb, $Cg2_Nc; // varriáveis da table1 - Acesso_PQT_OMS - Núm de Cartelas $Ct_Mb_Adulto=$_POST['Ct_Mb_Adulto']; $Ct_Mb_Crianca=$_POST['Ct_Mb_Crianca']; $Ct_Pb_Adulto=$_POST['Ct_Pb_Adulto']; $Ct_Pb_Crianca=$_POST['Ct_Pb_Crianca']; $Ubh_Psf=$_POST['Ubh_Psf']; $Ubh_Posto=$_POST['Ubh_Posto']; $Ubh_Centro=$_POST['Ubh_Centro']; $Ubh_Umista=$_POST['Ubh_Umista']; $Ubs_Psf=$_POST['Ubs_Psf']; $Ubs_Posto=$_POST['Ubs_Posto']; $Ubs_Centro=$_POST['Ubs_Centro']; $Ubs_Umista=$_POST['Ubs_Umista']; // varriáveis da table2 - casos em registro período $C_Mb=$_POST['C_Mb']; $C_Pb=$_POST['C_Pb']; $C_Nc=$_POST['C_Nc']; $Et_Mb=$_POST['Et_Mb']; $Et_Pb=$_POST['Et_Pb']; $Et_Nc=$_POST['Et_Nc']; // varriáveis da table5 - tabela de novos casos $Pblu_Pb=$_POST['Pblu_Pb']; $Pblu_Nc=$_POST['Pblu_Nc']; $M_Mb=$_POST['M_Mb']; $M_Pb=$_POST['M_Pb']; $M_Nc=$_POST['M_Nc']; $C15_Mb=$_POST['C15_Mb']; $C15_Pb=$_POST['C15_Pb']; $C15_Nc=$_POST['C15_Nc']; $Cg2_Mb=$_POST['Cg2_Mb']; $Cg2_Pb=$_POST['Cg2_Pb']; $Cg2_Nc=$_POST['Cg2_Nc']; $con = odbc_connect("access","","") or die("Erro na conexão com o Database"); // $sql = odbc_exec($con,"SELECT * FROM Municipio"); // expressao para inclusao do registro $eSqli1 ="INSERT INTO $Table1 (Ct_Mb_Adulto, Ct_Mb_Crianca, Ct_Pb_Adulto, Ct_Pb_Crianca, Ubh_Psf, Ubh_Posto, Ubh_Centro, Ubh_Umista, Ubs_Psf, Ubs_Posto, Ubs_Centro, Ubs_Umista)"; $eSqli1 .= "VALUES ('$Ct_Mb_Adulto', '$Ct_Mb_Crianca', '$Ct_Pb_Adulto', '$Ct_Pb_Crianca', '$Ubh_Psf', '$Ubh_Posto', '$Ubh_Centro', '$Ubh_Umista', '$Ubs_Psf', '$Ubs_Posto', '$Ubs_Centro', '$Ubs_Umista')"; $eSqli2 ="INSERT INTO $Table2 (C_Mb, C_Pb, C_Nc, Et_Mb, Et_Pb, Et_Nc)"; $eSqli2 .= "VALUES ('$C_Mb', '$C_Pb', '$C_Nc', '$Et_Mb', '$Et_Pb', '$Et_Nc)";/* $eSqli3 ="INSERT INTO $Table3 (AgenNome, AgenEnder, AgenFone, AgenFax, AgenEmpr, AgenEmail, AgenAnot) "; $eSqli3 .= "VALUES ('$Nome', '$Ender', '$Fone', '$Fax', '$Empr', '$Email', '$Anot') "; $eSqli4 ="INSERT INTO $Table4 (AgenNome, AgenEnder, AgenFone, AgenFax, AgenEmpr, AgenEmail, AgenAnot) "; $eSqli4 .= "VALUES ('$Nome', '$Ender', '$Fone', '$Fax', '$Empr', '$Email', '$Anot') "; */ $eSqli5 ="INSERT INTO $Table5 (Pblu_Pb, Pblu_Nc, M_Mb, M_Pb, M_Nc, C15_Mb, C15_Pb, C15_Nc, Cg2_Mb, Cg2_Pb, Cg2_Nc)"; $eSqli5 .= "VALUES ('$Pblu_Pb', '$Pblu_Nc', '$M_Mb', '$M_Pb', '$M_Nc', '$C15_Mb', '$C15_Pb', '$C15_Nc', '$Cg2_Mb', '$Cg2_Pb', '$Cg2_Nc')";/* $eSqli6 ="INSERT INTO $Table6 (AgenNome, AgenEnder, AgenFone, AgenFax, AgenEmpr, AgenEmail, AgenAnot) "; $eSqli6 .= "VALUES ('$Nome', '$Ender', '$Fone', '$Fax', '$Empr', '$Email', '$Anot') "; */ $sql_statement1 = odbc_prepare ($con, $eSqli1) or die ("Não é possível inserir no Banco de Dados"); $sql1 = odbc_execute($sql_statement1) or die ("Não é possível inserir, por favor preencha todos os campos"); // odbc_free_result($sql1); $sql_statement2 = odbc_prepare ($con, $eSqli2) or die ("Não é possível inserir no Banco de Dados"); $sql2 = odbc_execute($sql_statement2) or die ("Não é possível inserir, por favor preencha todos os campos"); // odbc_free_result($sql2); $sql_statement5 = odbc_prepare ($con, $eSqli5) or die ("Não é possível inserir no Banco de Dados"); $sql5 = odbc_execute($sql_statement5) or die ("Não é possível inserir, por favor preencha todos os campos"); // odbc_free_result($sql5); odbc_close($con); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer o seguinte, a cada vez que preenche um insert na variável $eSqli coloca logo em seguia da linha do edbc_execute.Assim você não precisa ter $eSqli1, $eSqli2, $eSqli5, etc.Sacou ? Para cada vez que você faz o insert deve executar esta linha no odbc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

snif :~(não deu certo, cai na msgNão é possível inserir, por favor preencha todos os camposeu garanto a você que eu preenchi todos os campos ao enviar o formulario

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola novamente Walace! ai, isso tá virando novela, mas enfim, vamos lá! tó quase chorando.....dei print na $eSqli e apareceu:INSERT INTO Novos_Casos (Pblu_Pb, Pblu_Nc, M_Mb, M_Pb, M_Nc, C15_Mb, C15_Pb, C15_Nc, Cg2_Mb, Cg2_Pb, Cg2_Nc)VALUES ('5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5') - $INSERT INTO Novos_Casos (Pblu_Pb, Pblu_Nc, M_Mb, M_Pb, M_Nc, C15_Mb, C15_Pb, C15_Nc, Cg2_Mb, Cg2_Pb, Cg2_Nc)VALUES ('5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5')ou seja, só está iserindo em uma tabeladei print na $sql_statement e apareceu:sql_statement - Resource id #2e como já mexi tanto de novo no código então vou lhe mandá-lo novamente (mas só a parte que interessa): $con = odbc_connect("access","","") or die("Erro na conexão com o Database"); // $sql = odbc_exec($con,"SELECT * FROM Municipio"); // expressao para inclusao do registro $eSqli ="INSERT INTO $Table1 (Ct_Mb_Adulto, Ct_Mb_Crianca, Ct_Pb_Adulto, Ct_Pb_Crianca, Ubh_Psf, Ubh_Posto, Ubh_Centro, Ubh_Umista, Ubs_Psf, Ubs_Posto, Ubs_Centro, Ubs_Umista)"; $eSqli .= "VALUES ('$Ct_Mb_Adulto', '$Ct_Mb_Crianca', '$Ct_Pb_Adulto', '$Ct_Pb_Crianca', '$Ubh_Psf', '$Ubh_Posto', '$Ubh_Centro', '$Ubh_Umista', '$Ubs_Psf', '$Ubs_Posto', '$Ubs_Centro', '$Ubs_Umista');"; $eSqli ="INSERT INTO $Table2 (C_Mb, C_Pb, C_Nc, Et_Mb, Et_Pb, Et_Nc)"; $eSqli .= "VALUES ('$C_Mb', '$C_Pb', '$C_Nc', '$Et_Mb', '$Et_Pb', '$Et_Nc);"; $eSqli ="INSERT INTO $Table5 (Pblu_Pb, Pblu_Nc, M_Mb, M_Pb, M_Nc, C15_Mb, C15_Pb, C15_Nc, Cg2_Mb, Cg2_Pb, Cg2_Nc)"; $eSqli .= "VALUES ('$Pblu_Pb', '$Pblu_Nc', '$M_Mb', '$M_Pb', '$M_Nc', '$C15_Mb', '$C15_Pb', '$C15_Nc', '$Cg2_Mb', '$Cg2_Pb', '$Cg2_Nc')"; $sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados"); $sql = odbc_execute($sql_statement) or die ("Não é possível inserir, por favor preencha todos os campos"); odbc_close($con);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, nem esquenta, tb já estou meio confuso com este codigo, mas vamos tentar novamente:

 

//******************************

con = odbc_connect("access","","") or die("Erro na conexão com o Database");

// $sql = odbc_exec($con,"SELECT * FROM Municipio");

 

// expressao para inclusao do registro

$eSqli ="INSERT INTO $Table1 (Ct_Mb_Adulto, Ct_Mb_Crianca, Ct_Pb_Adulto, Ct_Pb_Crianca, Ubh_Psf, Ubh_Posto, Ubh_Centro, Ubh_Umista, Ubs_Psf, Ubs_Posto, Ubs_Centro, Ubs_Umista)";

$eSqli .= "VALUES ('$Ct_Mb_Adulto', '$Ct_Mb_Crianca', '$Ct_Pb_Adulto', '$Ct_Pb_Crianca', '$Ubh_Psf', '$Ubh_Posto', '$Ubh_Centro', '$Ubh_Umista', '$Ubs_Psf', '$Ubs_Posto', '$Ubs_Centro', '$Ubs_Umista');";

//AQUI você PRECISA EXECUTAR A SQL ACIMA

ACHO QUE ASSIM:

$sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados");

$sql = odbc_execute($sql_statement) or die ("Não é possível inserir, por favor preencha todos os campos");

$eSqli ="INSERT INTO $Table2 (C_Mb, C_Pb, C_Nc, Et_Mb, Et_Pb, Et_Nc)";

$eSqli .= "VALUES ('$C_Mb', '$C_Pb', '$C_Nc', '$Et_Mb', '$Et_Pb', '$Et_Nc);";

 

 

$eSqli ="INSERT INTO $Table5 (Pblu_Pb, Pblu_Nc, M_Mb, M_Pb, M_Nc, C15_Mb, C15_Pb, C15_Nc, Cg2_Mb, Cg2_Pb, Cg2_Nc)";

$eSqli .= "VALUES ('$Pblu_Pb', '$Pblu_Nc', '$M_Mb', '$M_Pb', '$M_Nc', '$C15_Mb', '$C15_Pb', '$C15_Nc', '$Cg2_Mb', '$Cg2_Pb', '$Cg2_Nc')";

 

$sql_statement = odbc_prepare ($con, $eSqli) or die ("Não é possível inserir no Banco de Dados");

$sql = odbc_execute($sql_statement) or die ("Não é possível inserir, por favor preencha todos os campos");

 

odbc_close($con);

//******************************

 

Para a segunda sql você já fez e deve estar ok.

Qualquer coisa fala novamente.

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.