Michael Alø-Nielsen wrote:
> Jeg har en tabel i min database kaldet musikcitater, som ser således ud:
>
> id int(8) NOT NULL auto_increment,
> citat varchar(255) NOT NULL default '',
> oprindelse varchar(255) NOT NULL default '',
> PRIMARY KEY (id)
>
> Jeg har så lavet en form til at indtaste citater i databasen, som ved submit
> sender følgende:
>
> mysql_query ("INSERT INTO musikcitater ( id , kunstner , oprindelse ) VALUES
> ( '', '$kunstner', '$oprindelse' )");
> Men nu kommer vi så til kernen i mit spørgsmål!
> Jeg vil lave et tjek på hvad det næste id, der tildeles automatisk i
> databasen er, og hvis det næste id ender på 1 (altså, 1, 11, 21, 31, 41, 51
> osv.) skal der indsættes en helt bestemt række i tabellen som er ens for
> alle de id'er der ender på 1. Derefter skal det citat der blev indtastet i
> min form så sættes ind.
Det lyder (undskyld jeg siger det) ikke som en relationsdatabase som er
normaliseret.
Sagt på en anden måde tror jeg at du kan opnå det du vil smartere, uden
at skulle ud i en masse trick og hacks som næsten er at misbruge
databasen
HVIS det imidlertid ikke er tilfældet (eller hvis du insisterer på at
gøre det du beder om hjælp til) er du efter min bedste overbevisning
nødt til at lave et script som henter max(id) ud og undersøger om den
slutter på 1. Jeg kan se nedenfor at du bruger php, så vil substr(-1)
give dig sidste position i den variabel som du trækker id ud i.
> Altså:
> Hvis ikke næste id ender på 1 indsættes det der blev tastet i formen.
> Hvis næste id ender på 1 indsættes først min specielle række, og derefter
> det der blev indtastet i formen...
> Dernæst vil jeg gerne lave en sammentælling af alle rækkerne i databasen,
> men undtaget de id'er der ender på 1.
Igen: det lyder altså forkert det her, men
SELECT COUNT(id) FROM tabel WHERE RIGHT(ID,1) !='1'
burde vist kunne gøre det
mvh
Jesper Brunholm
--
Phønix - dansk folk-musik i front - <
http://www.phonixfolk.dk/>
H.C. Andersen-Centret med nyt design: <
http://www.andersen.sdu.dk/>