Avatar billede thetoastmaster Juniormester
26. januar 2009 - 16:44 Der er 4 kommentarer og
1 løsning

opsætning af mysql mht eks id_nummer

Hej

Jeg er ny mht. mysql, men jeg står og skal bruge nogle ting der skal gøres gennem mysql.

Mit problem er opsætningen af en database, jeg vil gerne lave en database der eks hedder pao_db, og i denne database skal der være 3 tabeller eks. person – aktiver – omskrivning,

mit spørgsmål

hvis jeg har en fælles ting i de 3 tabeller eks id_nummer, er der en måde hvormed jeg kan sige til mysql at hver gang jeg skriver i tabellen person ( laver en ny bruger med nyt id_nummer ), skal id_nummer i aktiver + omskrivning også oprettes ( tomme eller være med eks et null i alle felterne ), kan man få mysql til dette eller skal dette gøres med eks php ??? 

Og hvis ja skal dette så sættes under oprettelse af tabeller ?

Mvh thetoastmaster
Avatar billede tmi Nybegynder
26. januar 2009 - 18:40 #1
Så vidt jeg ved så skal du gøre det i PHP ja, du kan dog gøre det omvendt, således at hvis du sletter, så sletter den automatisk i de andre tabeller (FOREIGN KEY).

Hvis du har AUTO_INCREMENT på dit id-felt, kan du få denne id i PHP sådan her:
mysql_query("INSERT INTO person (navn) VALUES('tmi');");
$id = mysql_insert_id();
mysql_query("INSERT INTO aktiver (person_id, tal) ('$id', '1000')");
mysql_query("INSERT INTO omskrvning (person_id, tal) ('$id', '2000')");
Avatar billede thetoastmaster Juniormester
26. januar 2009 - 19:47 #2
ok..

så må jeg gå den vej, men syntes det er lidt underligt at dette ikke bare kan gøres fra start, det er jo tit man laver databaser over bruger med nogle tabeller der også indeholder data på dem, så det er en gåde man ikke kan dette..

men læser ligepå dette... men kan jeg ikke finde noget så skal du svar så får du de points....

men vent 24 timer ...

mvh Thetoastmaster
Avatar billede tmi Nybegynder
26. januar 2009 - 20:15 #3
Du skal bare give dig god tid :-)

Jeg har lavet rigtig mange systemer gennem tiden og jeg har faktisk aldrig tænkt over at det ville være smart hvis den kunne oprette dem selv. Jeg har dog tit gjort sådan som jeg lige skrev, men som regel vil jeg gerne have mere data i de nye rækker end bare at oprette dem. Evt kan du bruge REPLACE når du skal indsætte i de andre, den fungerer ligesom INSERT bortset fra at hvis du har et unikt index, så sletter den den eksisterende række først og indsætter igen, og hvis der ikke er noget i forvejen, så laver den bare en insert.

REPLACE INTO aktiver (person_id, tal) VALUES('1', '2000');

Denne vil overskrive den række med person_id = '1' hvis du har en primær eller unik nøgle på person_id, eller oprette hvis den ikke findes.

Du skal bare være opmærksom på at den altså sletter rækken først, hvis du har nogen foreign keys, og derfor skal du indsætte alle felter hver gang. Men måske kan det bruges i dit tilfælde =)
Avatar billede thetoastmaster Juniormester
28. januar 2009 - 14:13 #4
Hov glemte det næsten :-)
skriv lige et svar ( tmi ) så får du lige de 100 point...

så lige denne side på nettet.. men desvære siger siden ikke rigitg om dette er for mysql 4 - 5, men jeg kan da bruge en del af det... siden hedder http://www.w3schools.com/sql/

mvh thetoastmaster
Avatar billede tmi Nybegynder
28. januar 2009 - 18:21 #5
Håber du kunne bruge det :-)
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

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