Avatar billede hoell Nybegynder
11. oktober 2003 - 12:14 Der er 8 kommentarer og
2 løsninger

insert med efterfølge udtræk af værdi?

Hej kan man efter man har indsat i post i en tabel umiddelbart få spyttet f.eks autoid, hvis dette felt er det unikke felt? Der auto_increment på autoid! Jeg ved godt jeg bare kan finde den post me den højeste værdi på autoid, men hvad nu hvis der bliver oprettet to poster simultant?? (ved godt dette ikke vil ske simultant, men i hverfald næsten samtidigt)

Jeg skal bruge denne autoid lidt længere nede i koden til at lave et link mellem to tabeller. Jeg indsætter dette unikke felt i en anden tabel, for at kunne finde tilbage.
/hoell
Avatar billede clausjul Nybegynder
11. oktober 2003 - 12:21 #1
Du finder den seneste autoid ved at skrive

SELECT LAST_INSERT_ID() FROM table
Avatar billede hoell Nybegynder
11. oktober 2003 - 12:30 #2
Ja, men hvis der i stort set samme øjeblik bliver oprettet endnu en post, vil jeg få den forkerte id! vil jeg ikke?
Avatar billede detox Nybegynder
11. oktober 2003 - 12:42 #3
Nej, det vil ikke være noget problem, da værdien bliver bibeholdt pr connection. Så selvom andre klienter tilføjer nye rækker, får du den korrekte id med LAST_INSERT_ID().
Avatar billede hoell Nybegynder
11. oktober 2003 - 12:49 #4
skal der skrives noget
Avatar billede hoell Nybegynder
11. oktober 2003 - 12:51 #5
Upss!! Skal der skrives noget i parantesen ala:

SELECT LAST_INSERT_ID(autoid) FROM table?

Kan du forøvrigt give et bud på hvor følgende ikke virker?

$insertKURSUS = "insert into kursur (kurser_status, kursustype, kursusdato, , kursusdato2, værtsklub, kursussted, kursusadr, kursuskontakt,kontaktTelefon, kontaktEmail, antal_tilmeldte)
              values ('$_POST[kurser_status]','$_POST[kursustype]', '$_POST[kursusdato]','$_POST[kursusdato2]','$_POST[værtsklub]','$_POST[kursussted]','$_POST[kursusadr]','$_POST[kursuskontakt]','$_POST[kontaktTelefon]','$_POST[kontaktEmail]','$_POST[deltagerantal]')";

mysql_query($insertKURSUS);

Den får ikke opretet en ny post, og den melder ingen fejl??

/hoell
Avatar billede detox Nybegynder
11. oktober 2003 - 12:54 #6
Nej, du skal ikke skrive noget i LAST_INSERT_ID().

Jeg vil prøve med:

mysql_query($insertKURSUS) or die(mysql_error());
Avatar billede hoell Nybegynder
11. oktober 2003 - 13:07 #7
Virkde det med at lave en die, det har jeg ikke brugt, før men altid fremover!!

Følgende retunerer ikke en et tal, hvorfor?

$kursusID = mysql_query("SELECT LAST_INSERT_ID() FROM kurser")

echo $kursusID;  giver: Resource id #2
Avatar billede detox Nybegynder
11. oktober 2003 - 13:11 #8
Prøv:

$kursusID = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM kurser"),0);
Avatar billede hoell Nybegynder
11. oktober 2003 - 15:03 #9
deotx hvis du vil have nogle point for den løsning der duede, så skriv lige et svar! /Hoell
Avatar billede detox Nybegynder
11. oktober 2003 - 15:40 #10
Svar c",)
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
Computerworld tilbyder specialiserede kurser i database-management

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