Avatar billede tdc Nybegynder
22. september 2001 - 21:10 Der er 9 kommentarer

Sidst indsatte row ...

Hvordan kan man få MySQL til (hurtigt) at hente data ud om den sidst indsatte row i en tabel ..?
Avatar billede cyberdude Nybegynder
22. september 2001 - 21:30 #1
LIGE EFTER den query du laver når du indsætter noget, laver du en

$sidsteindlaeg = mysql_insert_id();
og så laver du bare en alm. mysql_query(\"select * from TABEL_NAVN where id = \'$sidsteindlaeg\'\");

og så behandler det output.....
Avatar billede tdc Nybegynder
23. september 2001 - 00:57 #2
Jeg tror ikke helt jeg kan bruge den metode ...

Jeg har en database med oplysninger om medlemmerne i en klub. Hvert medlem har et 6cifret medlemsid ... i tabellen over medlemsdata, har jeg også en ID kolonne (som bliver brugt som linienummer og index) som er sat til :

ID int(6) DEFAULT \'0\' NOT NULL auto_increment

&

PRIMARY KEY (ID)

... Det virker også fint, men når jeg nu skal have tilføjet et nyt medlem, skal jeg jo finde ud af hvad det sidst brugte medlemsid er, så jeg kan finde det næste ... hvis man opretter et medlem og sletter det igen, vil ID (altså index) forskyde sig med én, så man kan ikke bare bruge metoden med at tælle rækkerne og så pille data ud for rækken med ID lig med antal rækker ....

Jeg ved godt det lyder lidt indviklet, men hvis du har nogle gode forslag sååå ...
Avatar billede cyberdude Nybegynder
23. september 2001 - 11:03 #3

1.) hmmmm dvs. at der IKKE må være \"tomme\" poster i dette felt (ID int(6) DEFAULT \'0\' NOT NULL auto_increment), er det korekt opfattet

2.) eller er det i medlemsid at der ikke må være tomme pladsser, du sletter feks. 002150 så er det at du gerne vil næste gang der oprettes en \"bruger\" kunne oprette vedkommende med id 002150 således at det id bliver udfyldt igen.

hvilken af de 2 punkter er korekte ??
Avatar billede tdc Nybegynder
23. september 2001 - 12:26 #4
Punkt 1 er korekt opfattet ... og jeg ved ikke rigtig med punkt nummer 2 ...

CREATE TABLE KLUBNAVN (
  ID int(6) DEFAULT \'0\' NOT NULL auto_increment,
  MEDLEMS_ID int(6),
  EFTERNAVN char(60),
  FORNAVN char(60),
  PRIMARY KEY (ID),
  UNIQUE KEY MEDLEMS_ID (MEDLEMS_ID)
);

Når man opretter et nyt medlem, bliver der automatisk tildelt et nyt \"ID\" men jeg skal selv finde det nye \"MEDLEMS_ID\" (som skal komme i rækkefølge \"250601\" -> \"250602\") ... Det havde jeg tænkt mig at gøre, ved at finde den sidste række i tabellen og så lægge 1 til det medlemsid ...

Lige en ting mere ... jeg kan ikke se hvad forskel \"UNIQUE KEY MEDLEMS_ID (MEDLEMS_ID)\" gør i min tabel ..... måske ved du det ..?
Avatar billede cyberdude Nybegynder
23. september 2001 - 13:36 #5
det der med unique og primary har noget at gøre med når du søger i databasen, det er hurtigere at søge på en primær/unique key...... men det har ikke noget at sige i alm. tilfælde det kommer stort set kun til nytte som eks. her på eksperten, hvor der er 10.000+ indlæg i databasen!

du kan IKKE  få feltet
ID int(6) DEFAULT \'0\' NOT NULL auto_increment

til at indeholde et tal du selv bestemmer når du nu har sat det til auto_increment så VIL det automatisk tage den foregående række og lække 1 dertil.........

så det er egentlig på medlems_id du skal have lavet noget haløjsa som styre dette med at de skal komme i rækkefølge......

jeg skal til min nevøs føs\' dag nu, men jeg kigger på det når jeg kommer hjem og har spist til aften.....

vi skal have fat i den kode hvor du opretter nye medlemmer her skal vi hente den LAVESTE værdi ud og så plusse 1 dertil, det kan strikkes sammen så det sker automatisk!

men som sagt kigger på det i aften!
Avatar billede tdc Nybegynder
23. september 2001 - 13:40 #6
Mange tak .... det vil jeg glæde mig til ... :o)
Avatar billede tdc Nybegynder
26. september 2001 - 11:59 #7
Ææhhh ... det var det svar vi kom fra ... ???
Avatar billede cyberdude Nybegynder
27. september 2001 - 21:05 #8
hi!!

Jeg har nu haft hovedebrud over dette, og må desvære meddele at jeg ikke har haft suxces med de mange test jeg har lavet.... :-((

Desvære, jeg smider håndklædet i ringen!
Avatar billede tdc Nybegynder
27. september 2001 - 23:46 #9
Helt OK .... Tak fordi du forsøgte .... :o)
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