Ir para conteúdo

POWERED BY:

Arquivado

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

Jaques le Boursier

[Resolvido] Cadastrar no banco

Recommended Posts

Preciso de um auxilio pra fazer um cadastro no banco de dados em sql...

 

eu tenho 7 bancos que estão conectados entre si e não to conseguindo faze um cadastro onde ele adicione no banco todas as informações ao mesmo tempo...

eu utilizo o metodo POST e coloco as informações em um variavel, depois faço uma função onde tento por INSERT INTO mas não cadastra.

 

alguem tem alguma ideia de como posso fazer??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jaques le Boursier, bom dia!!!

 

você disse que tem 7 banco conectados entre si???

São 7 banco ou 7 tabelas?

 

Bom...coloque aí o seu codigo de inserção para que...possamos dar uma olhada ok.

 

Abraços e no aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jaques le Boursier, bom dia!!!

 

você disse que tem 7 banco conectados entre si???

São 7 banco ou 7 tabelas?

 

Bom...coloque aí o seu codigo de inserção para que...possamos dar uma olhada ok.

 

Abraços e no aguardo...

 

Perdão são 7 tabelas...

 

tem uma tabela de tipo de pedido onde eu cadastro ele e jogo dentro de uma listbox, então cadastro no $pedido apenas o id do tipo do pedido.

 

function cadastar($numprocesso, $reclamada, $advreclamada, $pedido, $reclamante, $advreclamante)
	{
	 $this->numprocesso=$numprocesso;
	 $this->reclamada=$reclamada;
	 $this->advreclamada=$advreclamada;
	 $this->pedido=$pedido;
	 $this->reclamante=$reclamante;
	 $this->advreclamante=$advreclamante;
	 
		 
	$cad = "INSERT INTO processos
	(numprocesso)
	VALUES
	('$numprocesso')";
        $resposta = mysql_query($cad)
 	or die ("Não foi possível cadastrar o Processo");
	
	$cad1 = "INSERT INTO reclamadas
	(nomereclamada)
	VALUES
	('$reclamada')";
	$resposta1 = mysql_query($cad1)
	or die ("Não foi possível cadastrar o Processo");
	 
	$cad2 = "INSERT INTO advreclamadas
	(nomeadvreclamada)
	VALUES
	('$advreclamada')";
	$resposta2 = mysql_query($cad2)
	or die ("Não foi possível cadastrar o Processo");
	 		
	$cad3 = "INSERT INTO pedidosprocessos
	(idtipo)
	VALUES
        ('$pedido')
	$resposta3 = mysql_query($cad3)
	or die ("Não foi possível cadastrar o Processo");
	 
	$cad4 = "INSERT INTO reclamantes
	(nomereclamante)
	VALUES
	('$reclamante')";
	$resposta4 = mysql_query($cad4)
	or die ("Não foi possível cadastrar o Processo");
	 	 
	$cad5 = "INSERT INTO advreclamantes
	(nomeadvreclamante)
	VALUES
	('$advreclamante')";
	$resposta5 = mysql_query($cad5)
	or die ("Não foi possível cadastrar o Processo");
	header ("Location: cadastrarproc.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Jaques le Boursier, primeiramente...seja bem vindo ao Forum iMasters.

Segundo...só uma dica...rsss

Quando for colocar algum codigo aki no forum...use as tags "['code']", facilita o entendimento.

 

Enfim...vamos lá...

 

Primeiramente...por você está trabalhando com 7 tabelas diferentes....você terá que fazer um controle de transação, pois vai que você está lá n tabela 5, tentando inserir algo, e dar erro..ou seja...as tabelas 1,2,3 e 4 terão dados inseridos e a 5,6 e 7 não terá nada pq...deu erro no 5º porcesso....ou seja..você terá dados incossistentes ok. Então....ou você grava tudo ou não grava nada beleza.

 

Bom...primeiro...você deve começar com o

mysql_query('START TRANSACTION;')
Ou seja...você deve iniciar o controle de transação...feito isso...você só poderar gravar algo se finalizar o controle ok...isso...iremos ver logo adiante...

 

Nos seus cadastros...você quer gravar na primeira tabela....e pegar o id dela e jogar na segunda, e assim por diante, certo?

 

beleza...faça o seguinte....

 

function cadastar($numprocesso, $reclamada, $advreclamada, $pedido, $reclamante, $advreclamante)
{
$this->numprocesso=$numprocesso;
$this->reclamada=$reclamada;
$this->advreclamada=$advreclamada;
$this->pedido=$pedido;
$this->reclamante=$reclamante;
$this->advreclamante=$advreclamante;

mysql_query('START TRANSACTION;');

$cad = "INSERT INTO processos
(numprocesso)
VALUES
('$numprocesso')";
$resposta = mysql_query($cad);

if($resposta = true){//Ou seja...se cadastrou, você faz a proxima...senão..anula tudo.
  /*Bom...já que você realizou o primeiro cadastro com sucesso...agora você partirá para o segundo...
porém...você quer inserir o id que acabou de ser realizado, correto...então antes de 
inserir o proximo registro...você faz uma consulta buscando o ultimo id que acabou de ser inserido na primeira 
inserção ou primeira tabela ok.*/
$busca = "Select idProcesso from procesos order by idProcesso DESC";/*Ou seja...busque para mim, todos os registros(idProcessos) 
da tabela processos e me traga na ordem do ultimo para o priemiro, feito isso....o 
ultimo registro que foi inserido...irá ficar na primeira posição daí..*/
$enviarBusca = mysql_query($busca );
$resposta    = mysql_fetch_assoc($enviarBusca );
$ultimoId    = $resposta["idProcesso "];/*Te lembro que...esse item idProcesso foi eu que crei aki ok...
no seu caso aí...você deve colocar o id da tua tabela processos beleza...*/

/*Bom...agora já temos o id que você acabou de inserir...então...é só montar a proxima SQL de inserção 
e adicionar o id que buscamos...*/
  
  $cad1 = "INSERT INTO reclamadas
(nomereclamada,idProcessos)
VALUES
('$reclamada',$ultimoId)";
$resposta1 = mysql_query($cad1);

 if($resposta1 == true){
    //Aqui...a proxima inserção...
    /*Lembrando que...para cada nova inserção...caso você queira adicionar o id de uma tabela anterior...
você deverá realizar uma nova busca...daí...quando chegar na ultima tabela...você deverá 
colocar o seguinte codigo dentro do [b]if($resposta7 == true){}[/b], coloque   [b]mysql_query('COMMIT;');[/b] ok.
Ou seja...o COMMIT, irá confirmar todas as inserções que foram feitas até aqui...ou seja...com o controle de
 transação...após você abrir o processo, o banco irá inserir tabela por tabela..porém...você terá que 
confirmar no final com o COMMIT, caso não confirmar...o processo é anulado...isso melhora a 
integridade dos dados ok*/
 }
  else{
      
      mysql_query('ROLLBACK;');
      echo "Houve um erro ao tentar realizar um cadastro!!!";
  }

}
else{
  
mysql_query('ROLLBACK;');
echo "Houve um erro ao tentar realizar um cadastro!!!";
}

Bom...eu não testei, mas é mais ou menos isso aí...

Qualquer coisa...vai postando seus resultados aki ok....que irei te auxiliando.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jaques le Boursier

De uma lida nas REGRAS do fórum

 

Não poste mensagens ou tópicos fora dos temas centrais dos fóruns tais como piadas, assuntos políticos, futebol, etc. Para estes assuntos, existe o fórum Entretenimento. Evite entitular os tópicos com palavras como: "ME AJUDE", "PELO AMOR DE DEUS", "ESTOU DESESPERADO", "URGENTE", "SOCORRO", "HELP", "PEDIDO", "IMPLORO", "PLEASE", "DÚVIDA", ou qualquer coisa similar, assim como utilizar Caixa Alta (letras todas em maiúsculas) no título ou mesmo no corpo do tópico ou post. Utilize títulos curtos e claros, que condizam com o contexto do tópico, por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma observação

$busca = "Select idProcesso from procesos order by idProcesso DESC";/*Ou seja...busque para mim, todos os registros(idProcessos) 
da tabela processos e me traga na ordem do ultimo para o priemiro, feito isso....o 
ultimo registro que foi inserido...irá ficar na primeira posição daí..*/
dava pra usar um

 

mysql_insert_id() ne?! :lol:

http://br.php.net/manual/pt_BR/function.mysql-insert-id.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá William Bruno , sim é verdade...dá pra usar um mysql_insert_id() , porém...ele irá buscar "qualquer" ultimo registro inserido...e se caso tiver mais de 1 usuario utilizando o sistema...pode dar zebra nisso...(se eu tiver falando besteiras...me desculpem....rss), por isso...eu sugeri a outra forma...mas...essa outra aí..também serve...eu apenas não confio nela.

 

Abraços....

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.