Avatar billede dizzim Nybegynder
28. juli 2004 - 17:04 Der er 6 kommentarer og
1 løsning

Id numre, delt op i flere dele.

Jeg er igang med at lave en database som skal rumme nogle forskellige informationener. Det hele fungere egentlig fint nok jeg har bare et lille problem.
Jeg vil gerne have at hver enkelt række i min tabel har et id-nummer.´Jeg har valgt at lave idnummeret sådan her: 00002-04

de fire første sifre (dem før -'en) er bare et nummer som for hver tilføjelse skal stige en gang. og de to tal efter -'en er årstallet.
Men hvordan laver jeg det ?

*Den samme tabel som skal indeholde id-numrene indeholder også dato'er for hvornår en ting er blevet tilføjet, men hvis man tilføjer flere ting på en dag vil den jo tage den row der først er blevet tilføjet på den nærmeste dag,, (skriv bare hvis der er noget i er i tvivl om.)

Det skal bruges til indsættelsen af informationen fra en form.
Avatar billede coderdk Praktikant
28. juli 2004 - 17:07 #1
Hvorfor overhovedet arbejde med "-04" delen? Er ID'et ikke nok?
Avatar billede dizzim Nybegynder
28. juli 2004 - 19:08 #2
det kommer vel an på hvor mange ting der bliver tilføjet til databasen. Hvis jeg undlader "-04" delen vil jeg højst kunne tilføje 99999 til tabellen i hele dens levetid, mens at jeg med nummer-år vil kunne tilføje 99999 pr. år.

PS: "de fire første sifre (dem før -'en)" jeg mener selvfølgelig fem.
Avatar billede coderdk Praktikant
28. juli 2004 - 19:19 #3
Jeg mener, hvorfor ikke bruge en mysql autonumber int(10) der burde være riiiigeligt numre at tage af dér ;) Og så evt. bare præsentere dem med sprintf( "%05d", $id ); eller noget, så vil id 10 se sådan ud: 00010 og overstiger den 99999 bliver den bare større...
Tro mig, du gør det meget nemmere for dig selv ;)
Avatar billede dizzim Nybegynder
28. juli 2004 - 19:26 #4
true.. mere end rigeligt, hvordan fungere det helt konkret?
Altså hvordan få jeg sat det ind i en row... er det bare:

mysql_query("INSERT INTO stock (id) VALUES ('autonumber int(10)')") or die(mysql_error());

Eller hvordan?, har aldrig brugt den funktion før...
Avatar billede coderdk Praktikant
28. juli 2004 - 23:22 #5
Nej, det sker når du laver tabellen! F.eks.:

CREATE TABLE `dintabel` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT
  ,`navn` VARCHAR (50) NOT NULL
  ,PRIMARY KEY(`id`)
);

Nu vil en statement som INSERT INTO dintabel SET navn = 'hejsa'; generere en unik ID. Hvis du vil, kan du få fat i den lige efter din insert med mysql_insert_id();
Avatar billede dizzim Nybegynder
30. juli 2004 - 15:12 #6
Yup.. det virker helt perfekt, takker. Meget nemmere end det jeg havde forslået. Point'ene er dine.
Avatar billede coderdk Praktikant
30. juli 2004 - 15:43 #7
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