Gå til innhold

Automatisk legge til nr. i database


Anbefalte innlegg

Jeg har laget en liten publiseringsløsning hvor jeg har kategorier og underkategorier samlet i en database. Jeg ønsker å kunne endre rekkefølgen(id) på underkategoriene. Siden hovedkategoriene og underkategoriene ligger i samme tabell vil jeg tro at det blir kronglete å endre kolonnen id på underkategoriene.

 

Går det ann å lage en ekstra kolonne som heter f.eks "underkat_id" hvor det hver gang jeg oppretter en underkategori, havner et egen nr. som blir satt inn automatisk? Da ville det være enklere å endre rekkefølgen på underkategoriene

Lenke til kommentar
Videoannonse
Annonse

Vist du skal endre på grunn av stortering så vil eg anbefale eit eige felt til sortering. Ellers så trur eg ikkje det er mulig å ha to felt som auker automatisk i ein tabell.

Endret av Shadows0
Lenke til kommentar

Tror nesten du må ha et eget sorteringsfelt ja, som starter på 1 for hver underkategori. Da kan du sortere hovedkategoriene med sin egen nummerserie, og hver underkategori for seg. (Og alt helt uavhengig av ID-feltet.)

Lenke til kommentar
Tror nesten du må ha et eget sorteringsfelt ja, som starter på 1 for hver underkategori. Da kan du sortere hovedkategoriene med sin egen nummerserie, og hver underkategori for seg. (Og alt helt uavhengig av ID-feltet.)

8592526[/snapback]

Det er sikkert lurt ja, men hvordan kan jeg lage et sorteringsystem hvor sorteringsfeltet automatisk starter på 1. og fortsetter for hver underkategori??
Lenke til kommentar

Du må gjøre alt det manuelt. Når du legger til første underkategori, så gir du det verdien 1. Når du legger til nye etter det, så finner du den største nåværende verdien med SELECT MAX(sort) osv. Så plusser du på 1 og bruker den når du setter inn.

 

Og hvis du flytter en kategori oppover, så må du kjøre

UPDATE tabell SET sort=sort+1 WHERE [over-kategori er lik $verdi] AND sort >= $ny_plass AND sort < $gammel_plass.

 

Flytter du nedover må du ha sort=sort-1.

Lenke til kommentar
Du må gjøre alt det manuelt. Når du legger til første underkategori, så gir du det verdien 1. Når du legger til nye etter det, så finner du den største nåværende verdien med SELECT MAX(sort) osv. Så plusser du på 1 og bruker den når du setter inn.

 

Og hvis du flytter en kategori oppover, så må du kjøre

UPDATE tabell SET sort=sort+1 WHERE [over-kategori er lik $verdi] AND sort >= $ny_plass AND sort < $gammel_plass.

 

Flytter du nedover må du ha sort=sort-1.

8594417[/snapback]

kan du gi meg et eksempel på det med oppdatere sorteringsfeltet?

 

Vedlagt følger kodene jeg bruker for å lage kategorer, endre kategorier, og endre rekkefølge:

 

endre_kategori.txt

endre_rekke.txt

ny_kategori.txt

 

I databasen har jeg 5 kolonner:

id

type - navn på kategorien

innhold - kategoribeskrivelse

under - for underkategorier hvor man bestemmer hvilken hovedkategori den skal under

sortering - har ennå ikke blitt brukt. Denne trenger jeg hjelp til

Endret av mariusmk
Lenke til kommentar
hva med a bruke time() som 2. sortering?

8595910[/snapback]

Det har jeg tenkt på og jeg synes det er en god idè, men da kommer spørsmålet om hvordan man gjør det.

 

En annen ting jeg lurer, som jeg har sett i en annen publiseringsløsning er at når man endrer rekkefølgen i kategoriene kan man redigere alle på likt. Hvordan gjøres det?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...