Avatar billede wampiro-uha Nybegynder
27. februar 2004 - 13:46 Der er 6 kommentarer og
1 løsning

Få id fra lige oprettet indlæg.

Jeg skal indsætte to ting i en DB som afhænger af hinanden.

Jeg bruger til at sætte ind i den første:

mysql_query("insert into messages (user, reciever, date, subject, content) values ('$_SESSION[login]', '$_GET[id]', Now(), '$_POST[subject]', '$_POST[content]')");

Nu skal jeg i en anden tabel sætte noget ind som skal bruge det ID som lige er blevet oprettet før.
Hvordan får jeg fat i det?

Jeg taler om en database som opdateres måske flere gange i sekundet nogen gange osv. Så jeg skal være sikker på det ID jeg får ud er netop til det indlæg jeg lige har oprettet.
Avatar billede morpheus Nybegynder
27. februar 2004 - 13:50 #1
Avatar billede tefcke Nybegynder
27. februar 2004 - 13:50 #2
mysql_insert_id() - returnerer det sidst indsatte id, fra den forgående query.
Avatar billede wampiro-uha Nybegynder
27. februar 2004 - 13:53 #3
Så hvis jeg sætter det lige imellem mine kald som smækker noget i databasen, så skulle jeg være sikker på at det virker?

Også selvom to brugere opretter noget på samme eksakte samme tidspunkt? Der kan ikke være forsinkelser eller noget?

Jeg mener der er jo mange tabeller som opdateres hele tiden og de har alle forskellige ID'er.
Avatar billede morpheus Nybegynder
27. februar 2004 - 13:56 #4
Det skulle ikke blive et problem.

Ellers må du lade være med at køre med auto nummering i databasen, og tildele brugeren et ID når denne logger på/udfylder formen/what ever
Avatar billede wampiro-uha Nybegynder
27. februar 2004 - 13:57 #5
Hmm, jeg har prøvet noget med:

mysql_query("insert into messages (user, reciever, date, subject, content) values ('$_SESSION[login]', '$_GET[id]', Now(), '$_POST[subject]', '$_POST[content]')");
mysql_query("insert into messages_sent (message, user, reciever, date, subject, content) values (mysql_insert_id(), '$_SESSION[login]', '$_GET[id]', Now(), '$_POST[subject]', '$_POST[content]')");

Synes ikke det virker?
Avatar billede wampiro-uha Nybegynder
27. februar 2004 - 14:01 #6
Hmm, hvis jeg imellem skriver

$lastId = mysql_insert_id();

Så virker det... Altså hvis jeg bruger $lastId...

Nå, takker ;-)
Avatar billede morpheus Nybegynder
27. februar 2004 - 14:04 #7
sæl takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester