Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Cadastrar em duas tabelas diferente ao mesmo tempo

25-06-2012 16:03

boa tarde, gostaria de saber se e possivel fazer o seguinte, nao importa a maneira ou a funçao usada, mas eu presiso que cadastre em duas tabelas. vou dar um exemplo:

tenho um cadastro de cliente
ai tenho duas tabelas tabela cliente e tabela usuario.

ai aki tenho os dados do cliente preenchidos...

na mesma pagina ainda
tenho os dados do usuario dele preenchidos...

so que na hora de gravar eu presiso dizer que o cliente tem que ser esse usuario.

que quando eu clique em gravar ele grave os dois e na tabela usuario ele grave o id do cliente..

poderia me dar um exemplo de como fazer isso!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastrar em duas tabelas diferente ao mesmo tempo

25-06-2012 16:13

Basicamente você precisa de 2 inserts na página. Já com os valores disponíveis, basta fazer a inserção

INSERT INTO nome_tabela (col1,col2) VALUES(1,2); INSERT INTO nome_tabela (col3,col4) VALUES(3,4);

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Cadastrar em duas tabelas diferente ao mesmo tempo

25-06-2012 16:29

mas eu utilizo auto increment

INSERT INTO nome_tabela1 (id,col2) VALUES(1,2); INSERT INTO nome_tabela2 (id,id'tabela1', col2) VALUES(8,1,5);

a minha duvida e como na mesma pagina se eu uso auto incremete eu faço para pegar a id da tabela 1 que no caso vai ser gerada pelo auto incremete supomos que ela seja 1 como eu faço para pegar a mesma e colocar na tabela abaixo?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastrar em duas tabelas diferente ao mesmo tempo

25-06-2012 16:48

Entre os 2 inserts você coloca isso

$selec2 = mysql_query("SELECT id FROM suatabela ORDER BY id DESC LIMIT 1") or die(mysql_error()); $ultimo = mysql_fetch_array($selec2); echo $ultimo['id'];

Você vai capturar o último id inserido pelo auto increment, é só usar o $ultimo no segundo insert.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Cadastrar em duas tabelas diferente ao mesmo tempo

25-06-2012 18:19

ok vou testar aki e ja digo se funciono mas e vamos supor que eu tenha um grande movimento e que eu de a sorte de alguem clicar ao mesmo tempo em gravar nao vai gera confusao no codigo ? ele pega o id errado ou nao tem essa probabilidade?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastrar em duas tabelas diferente ao mesmo tempo

25-06-2012 18:21

Se não tiver um identificador ai no insert para só aquele usuário, ou seja, o usuário irá atualizar um id só pertencente a ele, pode dar problema sim.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 117
Nome: Igor
Sexo: Masculino
Localização: Goiânia

Cadastrar em duas tabelas diferente ao mesmo tempo

30-07-2012 15:22

web, aproveitando a deixa, como pego o valor do último registro??? oaksoaksok explicando melhor:

preciso pegar a linha inteira que tiver o último id, como faço?
0
Bons tempos quando os homens eram homens e escreviam seus próprios "device drivers".
Linus Torvalds
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastrar em duas tabelas diferente ao mesmo tempo

30-07-2012 16:53

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Mensagens: 28
Sexo: Masculino

Cadastrar em duas tabelas diferente ao mesmo tempo

13-10-2012 15:44

Desculpe a demora, sei que não seria certo postar novamente aqui.
Mais de uma olhada sobre transação amigo, acredito que isso resolva seu problema, pois se alguma query der erro nenhuma será executada, isso seria o mais correto a fazer, sobre pegar o ultimo id, web postou uma função pra pegar o ultimo id cadastrado, ou você poderia fazer um SELECT MAX(id) FROM usuario.

Ex: vamos dizer que você queira cadastrar um usuário, e nesse mesmo instante cadastrar o usuário como um cliente. Agetne faria mais ou menos assim

<?php //abre chave php $conexao = mysqli_connect("localhost", "root", "mysql", "teste"); //define a conexão com o banco mysqli_autocommit($conexao, FALSE); //aqui está o segredo, esse código apenas será commited (Confirmado se tudo der certo) $erro = 0; //começamos declarando que não há nenhum erro $query1 = "INSERT INTO usuario (nome_usuario) VALUES ('1° Usuário')"; //criamos o Insert do usuário o id é auto_increment if (!mysqli_query($conexao, $query1)) $erro++; //se der erro na query acima agente incrementa a variável erro $query2 = " INSERT INTO cliente(id_usuario,  vip_cliente) SELECT MAX(id_usuario) as id_usuario, 'Sim' as vip_cliente FROM usuario "; //aqui é feito o insert do cliente, passando um Subselect onde pegamos o id_usuario e tb colocamos 'Sim' para o campo vip, fazendo desse jeito ele insere corretamente if (!mysqli_query($conexao, $query2)) $erro++; //verifica se a query 2 deu erro if ($erro == 0){ //caso não haja nenhum erro ele confirma as duas     mysqli_commit($conexao);     echo "certo <br>"; //escreve na tela que deu certo } else {     mysqli_rollback($conexao); //senão ele cancela as duas. Simples assim     echo "errado <br>"; //escreve na tela que deu errado } ?> //fim do php

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado