Avatar billede webcreator Nybegynder
10. august 2004 - 16:08 Der er 9 kommentarer og
1 løsning

Hent ID på netop oprettet post

Hej Eksperter.

Hvordan får jeg fat i ID-nummeret på en post, som netop er blevet oprettet af en bruger? - Jeg vil helst undgå at skulle oprette specielle ID'er, timestamps mm.
Avatar billede sukos Juniormester
10. august 2004 - 16:11 #1
mysql_insert_id()
Avatar billede webcreator Nybegynder
10. august 2004 - 16:17 #2
Er jeg sikker på at få ID'et på netop 'min' POST? Selv hvis der er en bruger eller flere, der opretter poster på nøjagtig samme tid?
Avatar billede sukos Juniormester
10. august 2004 - 16:20 #3
nix! Så vidt  jeg har læst her på eksperten!
For at være stensikker, er du vist nødt til at bruge et unikt "nr".
F.eks. ved at bruge sessions, og så opdatere tabeller, hvor session_id() er den rigtige
Avatar billede sukos Juniormester
10. august 2004 - 16:23 #4
Ehh, og så er det vist bedre med last_insert_id(), iflg. manualen,(hvis dit felt er af typen BIGINT) men byder så vidt jeg ved på det samme problem ved flere updates på samme tid
Avatar billede webcreator Nybegynder
10. august 2004 - 16:26 #5
hrfm - det var da træls. Men skidt - jeg klare det nok. Tak skal du ha' :)
Jeg lader lige mit spm. stå åbent lidt endnu - just in case. Men smid lige et svar :)
Avatar billede sukos Juniormester
10. august 2004 - 16:33 #6
Man kan "låse" DB'en mens query køre, mener jeg, men så er der vist heller ikke andre som kan bruge den!

Du ka nogså oprette midlertidige tabeller evt. men er ret sikker på at uanset hvad, så kræver det en gang "indviklet" kodning
Avatar billede sukos Juniormester
10. august 2004 - 16:36 #7
Altså hvis du også vil hente fra DB ud fra ID i de forskellige tabeller, på et andet tidspunkt.

Hvis det kun er selve INSERT som skal virke 100% på hver tabel, så kan session_id() jo gøre jobbet.

Og lige et svar!
Avatar billede sukos Juniormester
10. august 2004 - 17:03 #8
hmm, det kan det vel egentlig også alligevel?

altså, ved hver request, tjekkes om en "insertid" er sat.
Hvis ikke, køres en insert af session_id() på de forskellige tabeller, sammen med mysql_insert_id.
Hvis de forskellige inserts ikke fejler, (id findes ikke forvejen), så opdatere du en "tæller", og ender den med det rigtige antal inserts, ja, så har det kørt "fejlfrit", og "insertid" sættes
Avatar billede sukos Juniormester
10. august 2004 - 17:04 #9
$_SESSION["insertid"] = session_id();

håber du er med på hvad jeg mener! :O)
Avatar billede webcreator Nybegynder
12. august 2004 - 13:15 #10
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