Kommentarerna nedan är skrivna av användare på Fragbite. Fragbite granskar inte sanningshalten i texten och du uppmanas att själv kritiskt granska och bemöta texten. Förutsätt inte att innehållet i texterna är sanning.
hehe #1 är det verkligen MySQL, ser inte riktigt ut som MySQL, som någon annan SQL form.
Okej #1 och #3, tack ändå.
Grejen är att jag ska göra ett formulär där man ska skriva in X antal värden, där värderna sedan skall sparas i 2 olika tabeller.
Så är lite stuck atm :/
#4 Mjo det är lite oklart, för referensnycklar löser nog inte problemet im afraid :/
Problemet är att jag har ett formulär där man ska skriva in X antal värden.
Och det vill jag är att värderna som skriv in i fältet skall landa i olika tabeller, så behöver någon med lösning på detta.
Ex: Värde1 landar i tabellen fnamn, värde2 landar i tabellen enamn.
Men alla värden skrivs in från samma formulärsida.
Som vilket formulär som helst.
#5 jag tror du blandar ihop _tabell_ med _kolumn_, eller? att ha en tabell för förnamn och för efternamn verkar inte så vettigt (fast det kanske är vettigt i ditt fall?).
hur som helst, om det inte är två tabeller, utan två kolumner, så bör den här raden fungera:
INSERT INTO tabellnamn (fnamn, enamn) VALUES ('Anders', 'Andersson');
Är du säker på att du inte blandat ihop tabell med kolumn? Tabeller innehåller kolumner, exempel på tabell:
Table: user
id INT(11)
fnamn VARCHAR(20)
enamn VARCHAR(20)
Tabellen heter user och kolumnerna heter id, fnamn och enamn.
Om så är fallet så ser en insert-query ut såhär:
INSERT INTO user (fnamn,enamn) VALUES ('förnamn', 'efternamn');
// i första parentesen väljer du de kolumner du vill lägga till data i, i den andra lägger du till datan.
Nej nej nej #7 och #8 jag kan det, det där var bara ett exempel!
Att göra som i exemplet är rent idiotiskt det vet jag.
Men vi gör ett annat exempel istället:
Tabell1: Fnamn, Enamn
Tablell2: Adress, Postnr, Ort
ok #9.
hmm alltså, om du matar in data från en mysql konsoll/terminal så kan du mata in värden i två tabeller helt enkelt genom att avgränsa med semikolon efter frågorna, t.ex:
INSERT INTO test (kolumn1, kolum2) VALUES ('värde1', 'värde2'); INSERT INTO test2 (kolumn1, kolumn2) VALUES ('värde1', 'värde2');
då gör du det från en enda kommandorad (line).
jag antar dock att lösningen inte är så här enkel, du får isåf formulera/specificera dig lite bättre ;)
Du kan låta allt stå i en enda textrad bara du låter ett semikolon (;) skilja insert-satserna åt, precis som #10 visar. Om inte det duger så har du följande val:
1. Ha ett av värdena i båda tabellerna och bind ihop dem med referensnycklar så att ena värdet uppdateras även i sin andra tabell (rätt onödigt)
2. Gör det i en lagrad procedur (funktion) / trigger
Copyright Fragbite. Allt innehåll på Fragbite är skyddat enligt Upphovsrättslagen. Citat eller texter baserade på Fragbites innehåll ska följas eller föregås av källhänvisning.
Alla åsikter uttryckta på Fragbite representerar varje enskild skribent och överensstämmer inte nödvändigtvis med Fragbites åsikter.
Programmering och design av Fredric Bohlin. För frågor rörande sajten kan du skicka iväg ett email till vår support.
Cookies
Fragbite använder cookies för att spara användarspecifik information så som t.ex. användarnamn. Cookies sparas även när man deltar i omröstningar och för att föra statistik. För att slippa cookies kan du stänga av cookies i din webbläsares inställningar eller välja att inte besöka Fragbite. Den här textraden finns här på grund av lagen om elektronisk kommunikation som trädde i kraft 25 juli 2003.
Annonsering
Är du intresserad av att annonsera på Fragbite, tryck här.
Sorry, såg inte att du skrev MySQL.
INSERT INTO test1 (`ID`, `rubrik`, `textfält`) VALUES (NULL, 'rubrik',NULL);
INSERT INTO test2 (`ID`, `test_Id`, `textfält`) VALUES (NULL, LAST_INSERT_ID(),'test');
något i den stilen bör det vara då
Okej #1 och #3, tack ändå.
Grejen är att jag ska göra ett formulär där man ska skriva in X antal värden, där värderna sedan skall sparas i 2 olika tabeller.
Så är lite stuck atm :/
Tror inte det går att skriva det på en rad. Den bästa lösningen är nog som #1 skrivit.
Om du däremot vill lägga till flera värden i samma tabell så kan du göra såhär:
INSERT INTO a (field1, field2) VALUES ('b','c'), ('d','e'), ('f','g');
Då läggs alltså tre rader till i tabellen a.
däremot kan du göra det i samma transaktion
START TRANSACTION;
UPDATE tabellnamn SET kolumnnamn =1000 WHERE idnummer = 2;
UPDATE tabellnamn SET kolumnnamn = 1000 WHERE idnummer = 1;
COMMIT;
----------------- -------
alternativet är att sätta in referensnycklar
att ett värde i den ena tabellen refererar till den andra
sen får du definera villkor för att uppdatera
EX)
CREATE TABLE tabell1
(
idnummer INT NOT NULL PRIMARY KEY,
CONSTRAINT FOREIGN KEY(idnummer) REFERENCES andraTabellen(kolumnnamn_föräl dratabellen)
ON UPDATE CASCADE
);
obs att kolumnnamnet i andra tabellen måste vara UNIQUE eller PRIMARY KEY
skriv om något är oklart
Problemet är att jag har ett formulär där man ska skriva in X antal värden.
Och det vill jag är att värderna som skriv in i fältet skall landa i olika tabeller, så behöver någon med lösning på detta.
Ex: Värde1 landar i tabellen fnamn, värde2 landar i tabellen enamn.
Men alla värden skrivs in från samma formulärsida.
Som vilket formulär som helst.
hur som helst, om det inte är två tabeller, utan två kolumner, så bör den här raden fungera:
INSERT INTO tabellnamn (fnamn, enamn) VALUES ('Anders', 'Andersson');
Är du säker på att du inte blandat ihop tabell med kolumn? Tabeller innehåller kolumner, exempel på tabell:
Table: user
id INT(11)
fnamn VARCHAR(20)
enamn VARCHAR(20)
Tabellen heter user och kolumnerna heter id, fnamn och enamn.
Om så är fallet så ser en insert-query ut såhär:
INSERT INTO user (fnamn,enamn) VALUES ('förnamn', 'efternamn');
// i första parentesen väljer du de kolumner du vill lägga till data i, i den andra lägger du till datan.
Att göra som i exemplet är rent idiotiskt det vet jag.
Men vi gör ett annat exempel istället:
Tabell1: Fnamn, Enamn
Tablell2: Adress, Postnr, Ort
Got it?
hmm alltså, om du matar in data från en mysql konsoll/terminal så kan du mata in värden i två tabeller helt enkelt genom att avgränsa med semikolon efter frågorna, t.ex:
INSERT INTO test (kolumn1, kolum2) VALUES ('värde1', 'värde2'); INSERT INTO test2 (kolumn1, kolumn2) VALUES ('värde1', 'värde2');
då gör du det från en enda kommandorad (line).
jag antar dock att lösningen inte är så här enkel, du får isåf formulera/specificera dig lite bättre ;)
1. Ha ett av värdena i båda tabellerna och bind ihop dem med referensnycklar så att ena värdet uppdateras även i sin andra tabell (rätt onödigt)
2. Gör det i en lagrad procedur (funktion) / trigger