Foreign key problem - forstår ikke?
Hej folkHåber I kan hjælpe mig med foreign keys her.
Har svært ved at forstå det på ALLE tænkelige måder :S
Min database ser således ud:
--
-- Database: `webintiiexercise`
--
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `afdeling`
--
CREATE TABLE IF NOT EXISTS `afdeling` (
`af_id` int(4) NOT NULL AUTO_INCREMENT,
`af_navn` varchar(20) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL,
`af_tlf` varchar(8) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL,
PRIMARY KEY (`af_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Data dump for tabellen `afdeling`
--
INSERT INTO `afdeling` (`af_id`, `af_navn`, `af_tlf`) VALUES
(1, 'Nord', '32413241'),
(2, 'Syd', '42413241'),
(3, 'Øst', '52413241'),
(4, 'Vest', '62413241');
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `ansat`
--
CREATE TABLE IF NOT EXISTS `ansat` (
`a_id` int(11) NOT NULL AUTO_INCREMENT,
`a_navn` varchar(50) DEFAULT NULL,
`a_loen` decimal(8,2) DEFAULT NULL,
`a_afdeling` int(11) DEFAULT NULL,
PRIMARY KEY (`a_id`),
KEY `fk_a_afdeling` (`a_afdeling`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;
--
-- Data dump for tabellen `ansat`
--
INSERT INTO `ansat` (`a_id`, `a_navn`, `a_loen`, `a_afdeling`) VALUES
(1, 'Anders And', '12000.25', 2),
(2, 'Ole Olsen', '11230.75', 2),
(3, 'Hubert D. Grumbert', '23001.90', 1),
(4, 'Postmand Per', '1440.12', 2),
(5, 'Joakim Von And', '120020.25', 3),
(6, 'Abraham Lincoln', '7999.99', 3),
(7, 'Gorm Den Gamle', '112324.25', 4),
(8, 'Poul Thomsen', '52000.55', 4),
(9, 'Mikkel Henriksen', '92000.65', 1),
(10, 'Thorvald Stauning', '22034.35', 2),
(11, 'Poul Schlüter', '30000.85', 1),
(12, 'Jens Otto Kragh', '34000.65', 4),
(13, 'Steward Stardust', '23000.67', 1),
(14, 'H.C. Hansen', '22220.12', 3),
(15, 'Anker Jørgensen', '11230.95', 3),
(16, 'Anders Fogh Rasmussen', '98289.25', 1),
(17, 'Valdemar Atterdag', '7835.95', 3),
(18, 'Harald Blåtand', '38900.35', 2),
(19, 'Harald Hårfager', '12370.25', 4),
(20, 'Lars Højer Nielsen', '82673.25', 1),
(21, 'Leif Den Lykkelige', '13780.95', 2),
(22, 'Stan Getz', '12673.25', 4),
(23, 'John Coltrane', '45780.95', 3),
(24, 'Charlie Parker', '81273.25', 1),
(25, 'Herbie Hancock', '13321.95', 4);
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `opgave`
--
CREATE TABLE IF NOT EXISTS `opgave` (
`o_id` int(11) NOT NULL AUTO_INCREMENT,
`o_navn` varchar(40) DEFAULT NULL,
`o_ansat` int(11) DEFAULT NULL,
PRIMARY KEY (`o_id`),
KEY `fk_a_ansat` (`o_ansat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;
--
-- Data dump for tabellen `opgave`
--
INSERT INTO `opgave` (`o_id`, `o_navn`, `o_ansat`) VALUES
(1, 'timeregistrering', 1),
(2, 'timeregistrering', 2),
(3, 'timeregistrering', 3),
(4, 'timeregistrering', 4),
(5, 'timeregistrering', 5),
(6, 'timeregistrering', 6),
(7, 'timeregistrering', 7),
(8, 'timeregistrering', 8),
(9, 'timeregistrering', 9),
(10, 'timeregistrering', 10),
(11, 'timeregistrering', 11),
(12, 'timeregistrering', 12),
(13, 'timeregistrering', 13),
(14, 'timeregistrering', 14),
(15, 'timeregistrering', 15),
(16, 'timeregistrering', 16),
(17, 'timeregistrering', 17),
(18, 'timeregistrering', 18),
(19, 'timeregistrering', 19),
(20, 'timeregistrering', 20),
(21, 'timeregistrering', 21),
(22, 'timeregistrering', 22),
(23, 'timeregistrering', 23),
(24, 'timeregistrering', 24),
(25, 'timeregistrering', 25),
(26, 'direktionsmøde', 2),
(27, 'planlægningsmøde', 3),
(28, 'projektledermøde', 5),
(29, 'englandsrejse', 7);
--
-- Begrænsninger for dumpede tabeller
--
--
-- Begrænsninger for tabel `ansat`
--
ALTER TABLE `ansat`
ADD CONSTRAINT `fk_a_afdeling` FOREIGN KEY (`a_afdeling`) REFERENCES `afdeling` (`af_id`);
--
-- Begrænsninger for tabel `opgave`
--
ALTER TABLE `opgave`
ADD CONSTRAINT `fk_o_ansat` FOREIGN KEY (`o_ansat`) REFERENCES `ansat` (`a_id`);
Forstår ikke hvordan jeg kan få mine a_afdeling (altså ansatte i afdelingen) foreign keys til at udskrive mine af_navn (afdelingens navn) ud ved hjælp af en mysql sætning?
Fordi til denne kode:
<?php
$resultat = mysql_query("SELECT * FROM ansat WHERE a_afdeling=af_navn")
or die(mysql_error());
while($row = mysql_fetch_array( $resultat )) {
echo "$row[a_navn] $row[a_afdeling]<br /><br />";
}
?>
Siger den:
Unknown column 'af_navn' in 'where clause'
Håber der en hjælp derude?
Tak på forhånd.