Seneste id fra MySQL

Tags:    php

Jeg har lavet mit eget forum med PHP og MySQL. I min databasetabel har jeg bl.a. et felt med emnets ID. Dette ID skal være unikt når et nyt emne oprettes og med typen "nyt".

Når man besvarer et emne indsættes en ny række med det samme id men med typen "besvar".

Kan jeg bruge en kode der tjekker det sidste indsatte ID og lægger 1 til? Jeg har prøvet mysql_insert_id() men den finder desværre kun et ID fra den sidste INSERT-kommando...?!

Med venlig hilsen
Jesper Holm
www.b-web.dk



9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
hvis du bruger auto_increment i din id, skal du ikke indtaste noget id. Det finder den selv. Hvis du vil finde ud af hvilket id den selv har fundet, skal du bruge mysql_insert_id(), id har ikke noget at gøre med om kolonnen kedder "id". det er den kolonne der har auto_increment.



hvis du bruger auto_increment i din id, skal du ikke indtaste noget id. Det finder den selv. Hvis du vil finde ud af hvilket id den selv har fundet, skal du bruge mysql_insert_id(), id har ikke noget at gøre med om kolonnen kedder "id". det er den kolonne der har auto_increment.


din ID struktur skal bare være

`ID` int(100) NOT NULL auto_increment,

Så kan du bare lade ID feltet i din INSERT være tomt

Jan Larsen
CO-owner http://www.jabo-web.com




Jeg har lavet mit eget forum med PHP og MySQL. I min databasetabel har jeg bl.a. et felt med emnets ID. Dette ID skal være unikt når et nyt emne oprettes og med typen "nyt".

Når man besvarer et emne indsættes en ny række med det samme id men med typen "besvar".

Kan jeg bruge en kode der tjekker det sidste indsatte ID og lægger 1 til? Jeg har prøvet mysql_insert_id() men den finder desværre kun et ID fra den sidste INSERT-kommando...?!

Med venlig hilsen
Jesper Holm
www.b-web.dk


Altså mysql_insert_id () returnerer det sidst indtastede id. Jeg forstår ikke hvad det er du ellers vil..

--
Ronni Egeriis - http://sqdev.dk/
Co-Admin



Altså mysql_insert_id () returnerer det sidst indtastede id. Jeg forstår ikke hvad det er du ellers vil..


Allerførst glædelig jul :)

Ifølge PHP-manualen returnerer mysql_insert_id det ID der fremkom ved sidste INSERT-kommando? Men da jeg skal bruge ID'et til at udfylde feltet ID til INSERT-kommandoen er der derfor endnu ikke foretaget nogen INSERT-kommando hvor den kan hente ID fra?! Er det ikke rigtig forstået?!

Der skal vel en INSERT-kommando til før man kan finde ID? Men da jeg skal bruge ID'et til *netop* INSERT-kommandoen er der vel ikke fremkommet noget ID endnu?

Er du med på hvad jeg mener??

Hvis man kører mysql_insert_id() uden en mysql_query før returnerer den vel ikke noget ID? Hvilken forespørgelse kan man køre for at få returneret et ID fra tabellen??

Med venlig hilsen
Jesper Holm
www.b-web.dk



Hvis jeg prøver at gøre feltet 'id' til 'AUTO_INCREMENT' får jeg denne fejl:

Incorrect table definition; There can only be one auto column and it must be defined as a key


Nogle rækker skal kunne have det samme ID og det går derfor ikke hvis jeg giver feltet 'id' en primær- eller unik nøgle. Hvad kan jeg jeg i så fald gøre? Hvad gør det hvis jeg jeg gør id-feltet til datatypen INDEX??

Kan det hjælpe på mit problem så den automatisk finder det næste ID og samtidig er det muligt at give flere rækker det samme ID??

Med venlig hilsen
Jesper Holm
www.b-web.dk



nåå på den måde.

Du kan vist bruge noget med

INSERT INTO xxx (id,...) VALUES(max(id)+1,...)

ved ikke om det virker

skulle gerne finde det højeste id og lægge en til



Jeg har fået det til at virke nu *uden* mysql_insert_id ved at give feltet 'id' datatypen 'INDEX' og derefter tilføje 'AUTO_INCREMENT' til feltet...

Det virker som sagt perfekt, men hvad gør 'INDEX' egentlig som datatype?? Er der noget jeg bør være opmærksom på i den situation?

Bare rolig - pointene bliver snart uddelt! :D

Med venlig hilsen
Jesper Holm
www.b-web.dk



Jeg har fået det til at virke nu *uden* mysql_insert_id ved at give feltet 'id' datatypen 'INDEX' og derefter tilføje 'AUTO_INCREMENT' til feltet...

Det virker som sagt perfekt, men hvad gør 'INDEX' egentlig som datatype?? Er der noget jeg bør være opmærksom på i den situation?

Bare rolig - pointene bliver snart uddelt! :D

Med venlig hilsen
Jesper Holm
www.b-web.dk


så vidt jeg ved gemmer den en masse information der gør queries med "WHERE id=xxx" hurtigere


++ index er ikke en datatype

[Redigeret d. 25/12-03 17:09:49 af Jesper Kristensen]



++ index er ikke en datatype


I phpmyadmin - som jeg bruger til MySQL - viser den at datatypen INDEX er sat på 'id'. Det tyder derfor på at INDEX er en datatype ifølge phpmyadmin...?!

Med venlig hilsen
Jesper Holm
www.b-web.dk



t