Avatar billede compac Seniormester
06. juli 2005 - 12:08 Der er 2 kommentarer og
1 løsning

Fremmed nøgle

Jeg er vil lave en database med 2 tabeller, med relation til hinanden. I mysql-manualen er der følgende eksempel på anvendelse af fremmed nøgler:

CREATE TABLE person (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name CHAR(60) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE shirt (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
    owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
    PRIMARY KEY (id)
);

INSERT INTO person VALUES (NULL, 'Antonio Paz');

SELECT @last := LAST_INSERT_ID();

INSERT INTO shirt VALUES
(NULL, 'polo', 'blue', @last),
(NULL, 'dress', 'white', @last),
(NULL, 't-shirt', 'blue', @last);

INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');

SELECT @last := LAST_INSERT_ID();

INSERT INTO shirt VALUES
(NULL, 'dress', 'orange', @last),
(NULL, 'polo', 'red', @last),
(NULL, 'dress', 'blue', @last),
(NULL, 't-shirt', 'white', @last);

SELECT * FROM person;
+----+---------------------+
| id | name                |
+----+---------------------+
|  1 | Antonio Paz        |
|  2 | Lilliana Angelovska |
+----+---------------------+

SELECT * FROM shirt;
+----+---------+--------+-------+
| id | style  | color  | owner |
+----+---------+--------+-------+
|  1 | polo    | blue  |    1 |
|  2 | dress  | white  |    1 |
|  3 | t-shirt | blue  |    1 |
|  4 | dress  | orange |    2 |
|  5 | polo    | red    |    2 |
|  6 | dress  | blue  |    2 |
|  7 | t-shirt | white  |    2 |
+----+---------+--------+-------+


SELECT s.* FROM person p, shirt s
WHERE p.name LIKE 'Lilliana%'
  AND s.owner = p.id
  AND s.color <> 'white';

+----+-------+--------+-------+
| id | style | color  | owner |
+----+-------+--------+-------+
|  4 | dress | orange |    2 |
|  5 | polo  | red    |    2 |
|  6 | dress | blue  |    2 |
+----+-------+--------+-------+

Jeg har oprettet tabellerne. Herefter skal jeg til at kode.
Er der nogen der vil vise mig hvordan jeg indsætter dette forløb i et php-program?
Avatar billede cronaldo Nybegynder
06. juli 2005 - 21:52 #1
ok, hvad er det nøjagtigt du vil? Have PHP til at hente dine informationer ud og skrive dem eller hvad ?
Avatar billede compac Seniormester
06. juli 2005 - 22:43 #2
Ja netop! Hvis jeg skal lave det ovennævnte eksempel i PHP og skrive resultatet ud, kan Select og insert linierne ikke stå alene, men der skal vel nogle variabler osv. til.
Avatar billede compac Seniormester
26. februar 2006 - 22:49 #3
*
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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