ID feltet

Tags:    databaser

Jeg har en kode kørende på min side hvor der trækkes et tilfældigt citat fra databasen, men når jeg så får en opdatering ind med lidt over 2000 rækker, så er det sg træls at skulle sidde og nummerere alle rækkerne.

Det er muligt at jeg kan sætte dem ind via phpmyadmin, men det tager endnu længere tid.

SKAL ID feltet være auto_increment for at koden virker ?!?

Med venlig Hilsen Frank
http://anakin.dk
Jeg giver ikke point for opgavens størrelse, men for hjælpen der ydes..



Nej. Du kan sagtens sige at id ikke skal være auto_increment, men så skal du sørge for i din "front-end" at den indsætter f.eks. id=id+1 hver gang.
Auto_increment er blot for at gøre det nemmere for de folk som skal indsætte ting i databasen.

-AH



..men så skal du sørge for i din "front-end" at den indsætter f.eks. id=id+1 hver gang.


Og hvordan gør man så det ??

Men skal ID numrene stige med +1 for at en php kode kan trække et tilfældigt ud og vise ??

Med venlig Hilsen Frank
http://anakin.dk
Jeg giver ikke point for opgavens størrelse, men for hjælpen der ydes..



Jeg har en kode kørende på min side hvor der trækkes et tilfældigt citat fra databasen, men når jeg så får en opdatering ind med lidt over 2000 rækker, så er det sg træls at skulle sidde og nummerere alle rækkerne.

Det er muligt at jeg kan sætte dem ind via phpmyadmin, men det tager endnu længere tid.

SKAL ID feltet være auto_increment for at koden virker ?!?

Med venlig Hilsen Frank
http://anakin.dk
Jeg giver ikke point for opgavens størrelse, men for hjælpen der ydes..

________________________________
www.ssjpride.dk


Alle mine ID'er er auto_increment, for så laver dem selv iderne. Gør det, det er langt mere effektiv!



Når du f.eks. i php indsætter noget nyt skriver du
$sql = "insert into en_tabel (navn,besked,tidspunkt) values ('Brian','Det virker jo!?!','12:05')";
Hvis du vil indsætte dit eget id tilføjer du det bare.
$sql = "insert into en_tabel (id,navn,besked,tidspunkt) values (78,'Brian','Det virker jo!?!','12:05')";

Det er ikke nødvendigt at id'et stiger med 1 hver gang, det er bare det nemmeste for de fleste.
Du kan jo vælge at forhøje id'et med 53 hver gang du indsætter.

Du hiver det bare ud på samme måde som du normalt gør.



Det er ikke nødvendigt at id'et stiger med 1 hver gang, det er bare det nemmeste for de fleste.
Du kan jo vælge at forhøje id'et med 53 hver gang du indsætter.

Du hiver det bare ud på samme måde som du normalt gør.


Jeg tror vi snakker forbi hinanden, jeg flytter teksten fra word over i ordsprog.sql hvorfra jeg retter alle entry til, dvs. jeg har pt. et .sql dokument med 3000 poster der alle starter med

INSERT INTO ordsprog VALUES (1, 'da', 'Af gammelt jern smedes nye våben.', 'Ordsprog', '');

problemet er kun, at jeg ikke gider nummerere alle rækkerne manuelt, og derfor ville jeg høre om ikke koden kan trække en tilfældig ud, SELVOM alle ID=1 ??


Med venlig Hilsen Frank
http://anakin.dk
Jeg giver ikke point for opgavens størrelse, men for hjælpen der ydes..




Der er helt sikkert en måde at udtrække en tilfældig selvom alle har id=1, men hvis alle id i alle posterne er sat til 1, er det unødig information. Så hvorfor ikke bruge id som et unikt referencepunkt.

Det er heller ikke nødvendigt at du angiver id-værdien, det kan mySQL gøre for dig;

INSERT INTO ordsprog VALUES (1, 'da', 'Af gammelt jern smedes nye våben.', 'Ordsprog', '');

er det samme som :

INSERT INTO ordsprog(id,felt1,felt2,felt3) VALUES (1, 'da', 'Af gammelt jern smedes nye våben.', 'Ordsprog', '');

Så hvis du sætter id som auto_increment, behøver du ikke selv angive en værdi og kan derfor nøjes med:

INSERT INTO ordsprog(felt1,felt2,felt3) VALUES ('da', 'Af gammelt jern smedes nye våben.', 'Ordsprog', '');

MvH

Stefan Svensson
http://fusket.frac.dk



Man kan sagtens trække data tilfældigt ud af databasen selvom der ikke er en id tupel, som indeholder en masse tal.

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Så hvis du sætter id som auto_increment, behøver du ikke selv angive en værdi og kan derfor nøjes med:

INSERT INTO ordsprog(felt1,felt2,felt3) VALUES ('da', 'Af gammelt jern smedes nye våben.', 'Ordsprog', '');


Hvis jeg angiver mysql feltet som auto_increment, og indsætter min fil, så melder den fejl ved række 2, "dublicate entry for '1'" eller noget i den retning..

Men jeg har koden kørende nu, og det hele virker perfekt :) Man kunne måske undre sig over hvad jeg i det hele taget bruger ID feltet til, det behøver jo ikke være der når de alle er ens.

Måske med tiden kan jeg få lavet en kode magen til den jeg har der laver alle datofelterne om fra 'åååå', 'mm-dd' til date..

Tak for jeres svar allesammen, føler jeg er blevet en anelse klogere nu :)

Med venlig Hilsen Frank
http://anakin.dk
Jeg giver ikke point for opgavens størrelse, men for hjælpen der ydes..



t