goruks 0 Denunciar post Postado Maio 7, 2007 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
walace 1 Denunciar post Postado Maio 7, 2007 Dê uma pesquisada aqui no fórum: http://forum.imasters.com.br/index.php?showtopic=225179 http://forum.imasters.com.br/index.php?showtopic=198792 Compartilhar este post Link para o post Compartilhar em outros sites
goruks 0 Denunciar post Postado Maio 7, 2007 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
Eclesiastes 2 Denunciar post Postado Maio 8, 2007 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
goruks 0 Denunciar post Postado Maio 8, 2007 agora sim vlw, resolveu ja alterei e funcionou que eh uma beleza :D Compartilhar este post Link para o post Compartilhar em outros sites