Avatar billede amews_aj Nybegynder
03. januar 2005 - 18:30 Der er 22 kommentarer og
1 løsning

næste autoindex?

Hvordan kan jeg hente hvad næste autoindex i en database er?
Kan man det?

I PHP
Avatar billede arne_v Ekspert
03. januar 2005 - 18:44 #1
Nej.

Du indsætter i din tabel med auto increment og henter så det sidst indsatte og
indsætter det i de andre tabeller som skal referere til den første tabel.
Avatar billede arne_v Ekspert
03. januar 2005 - 18:45 #2
Avatar billede arne_v Ekspert
03. januar 2005 - 18:50 #3
generelt:

SELECT LAST_INSERT_ID()
Avatar billede amews_aj Nybegynder
03. januar 2005 - 19:06 #4
hvad gør jeg så, for jeg tømmer min database for beskeder med tiden...

Så må jeg bare undvære at have det med i statestikken

Det er hvor mange mails der bliver sendt i mit community...

MEn tak for svaret!

Vil du have point?
Avatar billede arne_v Ekspert
03. januar 2005 - 19:12 #5
Til statistik formål kan du formentlig bare bruge:

SELECT MAX(id) FROM ...

eller

SELECT COUNT(*) FROM ...
Avatar billede arne_v Ekspert
03. januar 2005 - 19:13 #6
En auto increment id ændrer sig ikke fordi man sletter nogle rækker (den genbruger
aldrig af sig selv).
Avatar billede arne_v Ekspert
03. januar 2005 - 19:13 #7
Point - jo tak, hvis du har fået noget ud af det ?
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:01 #8
hmm... Nej ved skam godt auto ikke ændrer sig, men hvis man nu har slettet nogle af de nyeste mails, men gemt nogle af de gamle, så passer den jo ikke....
Avatar billede arne_v Ekspert
03. januar 2005 - 20:05 #9
Nej.

Men så tror jeg at det er:

SELECT MAX(id) FROM ...

du skal bruge.

Den kan håndtere det. Og hvis der kører en INSERT sammen med den query, så
er det formentlig heller ikke en katastrofe.
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:11 #10
øhh, hvad mener du med de sidste to linjer, og hvad gør MAX?
Avatar billede arne_v Ekspert
03. januar 2005 - 20:16 #11
SELECT MAX(id) FROM ...

henter den største værdi i id feltet.

For et auto increment felt er det den nyeste værdi som stadig er i databasen.
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:20 #12
ja det er jo rigtig nok. Men når jeg har en masse emails i databasen, så sletter jeg nogle af de nyeste lad os sige vi har disse mails

1, 2 og 3

jeg sletter 2 og 3

så vil den vel sige at der er i alt skrevet 1 mail
selvom auto_increment er nået til 4
Avatar billede arne_v Ekspert
03. januar 2005 - 20:22 #13
Ja.

Hvis du vil have 4 der, så skal du have fat i en rigtig auto incremented id.
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:25 #14
hmm, øv, så jeg er nødt til at gemme noget i databasen så, ellers duer det ikke..

nå, øv, vil du have point alligevel, du har jo da hjulpet lidt!
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:33 #15
jo, du får point :D

bruger bare
min besog db til at skrive det ind også, så opdaterer den den hver gang der sendes
mysql_query("UPDATE besog SET email = email+1")or die(mysql_error());

:D

Takker for det :D
Avatar billede arne_v Ekspert
03. januar 2005 - 20:36 #16
Vent lidt.

Dit spørgsmål plejer at bliver stillet fordi man skal indsætte i andre tabeller
som skal have en reference til tabellen med auto increment feltet.

Og i det tilfælde er mit original svar korrekt.

Men du skal jo kun bruge det til statistik.

Og lidt granskning i docs siger at der er en løsning !
Avatar billede arne_v Ekspert
03. januar 2005 - 20:38 #17
Prøv og lave en query:

show table status like 'navnpådintabel'

og se i kolonnen auto_increment !
Avatar billede arne_v Ekspert
03. januar 2005 - 20:38 #18
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:42 #19
hmm, hvordan får jeg den til at vise auto_increment
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:46 #20
den skriver bare: Resource id #34
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:51 #21
åhh, havde glemt mysql_fetch_array
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:52 #22
Mange tak, det var lige det jeg skulle bruge! :D
Avatar billede amews_aj Nybegynder
03. januar 2005 - 20:54 #23
hmm, nu jeg tænker mig om er det andet faktisk bedere hehe...

Den komemr til at tlle dobbelt nogle gange hvis jeg bruger auto

så sry. fordi jeg gik efter det forkerte :D

Men mange tak for hjælpen, får med garanti brug for det der en anden gang !
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