Ir para conteúdo

POWERED BY:

Arquivado

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

goruks

como inserir FK ao criar um registro

Recommended Posts

Opa olábom to com 3 tabelas cursos, alunos, documentos quando crio um registro em aluno tudo bem eu insiro no campo id_curso (FK) em alunos o ID do curso que ja estava cadastrado. Agora com relação a tabela documentos quero que quando um registro for criado em alunos que crie uma linha tb em documentos onde tem id normal, id_aluno como (fk) e os otros atributos, agora como vou inserir esse id_aluno(fk) se nao sei o id pois o mesmo so vai ser atribuido depois de ser cadastrado na tabela aluno.Tem como fazer isso? para ele criar ja um registro na tabela e colocar um id e id_aluno(fk)como devo fazer?vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois eh ta ai nao sabia disso vlw :D eu ta pensando em usar funcao de recuperar mas tava pensando que a mesma poderia pegar de um registro que foi feito depois do atual

 

entao posso inserir minha fk que eh o ulltimo auto incremente da tabela alunos sem problema deste modo?

achei estas duasl porem so a segunda retorna valor como a primeira funciona?

1 - LAST_INSERT_ID()

2 - mysql_insert_id()

 

segue codigo marquei em vermelhor deste modo nao havera problema se ocorrerem 2 inserts ao mesmo tempo ele vai pegar referente aquele inserte somente?

 

$comando = "INSERT into

pos_alunos (

id,

id_curso,

nome,

email,

rg,

estado_rg,

orgao_emissor,

data_expedicao,

data_nascimento,

cpf,

naturalidade,

estado_naturalidade,

estado_civil,

sexo,

endereco,

numero_endereco,

complemento,

bairro,

municipio,

estado,

cep,

telefone_residencial,

telefone_celular,

telefone_comercial,

ramal,

nome_pai,

nome_mae,

faculdade,

ano_conclusao,

profissao,

data_inscricao)

 

VALUES (

'',

'$id_curso',

'$nome',

'$email',

'$rg',

'$estado_rg',

'$orgao_emissor',

'$expedicao_rg',

'$data_nascimento',

'$cpf',

'$naturalidade',

'$estado_naturalidade',

'$estado_civil',

'$sexo',

'$endereco',

'$numero_endereco',

'$complemento',

'$bairro',

'$municipio',

'$estado',

'$cep',

'$telefone_residencial',

'$telefone_celular',

'$telefone_comercial',

'$ramal',

'$nome_pai',

'$nome_mae',

'$faculdade',

'$ano_conclusao',

'$profissao',

'$data_inscricao')";

 

 

$query = mysql_query($comando,$conexao) or die(mysql_error());

 

NAO TEM PERIGO DE NESSE INTERVALO ALGUEM FAZER UM INSERT?

AI ELE PEGA OQUE ACABOU DE FAZER? OU PEGA O ANTERIOR?

 

//pegar id do aluno cadastrado anteriormente

$id_aluno = mysql_insert_id();

 

$comando2 = "INSERT into

pos_documentos (

id,

id_aluno,

id_curso,

rg,

cpf,

diploma,

certificado,

historico,

curriculo,

fotos,

obs)

 

VALUES (

'',

'$id_aluno',

'$id_curso',

'$rg_doc',

'$cpf_doc',

'$diploma_doc',

'$certificado_doc',

'$historico_doc',

'$curriculo_doc',

'$fotos_doc',

'$obs_doc')";

 

 

//$query2 = mysql_query($comando2,$conexao) or die(mysql_error());

 

mysql_close($conexao);

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei estas duasl porem so a segunda retorna valor como a primeira funciona?

1 - LAST_INSERT_ID()

2 - mysql_insert_id()

As duas funções (a primeira do MySQL, a segunda da lib. MySQL no PHP) funcionam perfeitamente.

 

NAO TEM PERIGO DE NESSE INTERVALO ALGUEM FAZER UM INSERT?

AI ELE PEGA OQUE ACABOU DE FAZER? OU PEGA O ANTERIOR?

Assim está no manual:

O último ID que foi gerado e mantido no servidor em uma base por conexão. Isto significa que o valor que a função retona para um dado cliente é o valor AUTO_INCREMENT gerado mais recentemente por aquele cliente. O valor não pode ser afetado pelos outros clientes, mesmo se eles gerarem um valor AUTO_INCREMENT deles mesmos. Este comportamento assegura que você pode recuperar seu próprio ID sem se preocupar com a atividade de outros clientes e sem precisar de locks ou transações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora sim vlw, resolveu ja alterei e funcionou que eh uma beleza :D

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.