Mysql 2 tabellen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE youtube (
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
titel varchar(50) NOT NULL,
videocode varchar(20) default NULL,
kwaliteit int(2) NOT NULL,
hits int(10) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
CREATE TABLE categorieen (
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
titel varchar(50) NOT NULL,
videocode varchar(20) default NULL,
kwaliteit int(2) NOT NULL,
hits int(10) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
CREATE TABLE categorieen (
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
als ik dus bijvoorbeeld een catagorie heb aangemaakt en ik wil een filmpje toevoegen op die catagorie hoe moet ik dat dan doen???
als je dus op de homepage op de catagorie klikt dat je dan ook de filmpjes uit die catogorie krijgt???? iemand een idee. heb als de SQL handleiding gelezen maar niet gevonden
Gewijzigd op 01/01/1970 01:00:00 door Nick
aan je linken toevoegen. Ik wil je adviseren eerst een goede cursus te volgen.
Hier moet je volgens mij een koppeltabel maken met film id en categorie id.
en hoe moet dat dan?
Dan moet je gewoon aan de youtube tabel een extra veld toevoegen: catogorie_id oid.
Dan kan je met een heel simpele query alle filmpjes van een catogorie ophalen
dankje zal het gelijk uitproberen. als het niet lukt zeg ik het wel.
Citroen schreef op 30.11.2008 00:48:
Volgensmij is een koppeltabel overbodig? Elk fimpje zit toch maar in 1 catogorie?
Dan moet je gewoon aan de youtube tabel een extra veld toevoegen: catogorie_id oid.
Dan kan je met een heel simpele query alle filmpjes van een catogorie ophalen
Dan moet je gewoon aan de youtube tabel een extra veld toevoegen: catogorie_id oid.
Dan kan je met een heel simpele query alle filmpjes van een catogorie ophalen
Nee, koppeltabel zou juist wel van toepassing zijn. Een filmpje kan aan meerdere categorieen worden gekoppeld.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CREATE TABLE youtube (
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
titel varchar(50) NOT NULL,
videocode varchar(20) default NULL,
kwaliteit int(2) NOT NULL,
hits int(10) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
CREATE TABLE categorieen (
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
CREATE TABLE cat2youtube (
youtube_id int(8) NOT NULL,
cat_id int(8) NOT NULL
) ENGINE=InnoDB
SELECT yt.*
FROM cat2youtube c2y
LEFT JOIN youtube yt ON yt.id = c2y.youtube_id
LEFT JOIN categorieen c ON c.id = c2y.cat_id
WHERE c.id = {{ JE ID VAN BIJV. $_GET['categorie'] }}
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
titel varchar(50) NOT NULL,
videocode varchar(20) default NULL,
kwaliteit int(2) NOT NULL,
hits int(10) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
CREATE TABLE categorieen (
id int(8) NOT NULL auto_increment,
naam varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB
CREATE TABLE cat2youtube (
youtube_id int(8) NOT NULL,
cat_id int(8) NOT NULL
) ENGINE=InnoDB
SELECT yt.*
FROM cat2youtube c2y
LEFT JOIN youtube yt ON yt.id = c2y.youtube_id
LEFT JOIN categorieen c ON c.id = c2y.cat_id
WHERE c.id = {{ JE ID VAN BIJV. $_GET['categorie'] }}
of
edit: stuk opmaak verwijderd & het is c.naam niet c.name
Gewijzigd op 01/01/1970 01:00:00 door Satsume
Waarom niet gewoon bij tabel youtube een cat_id gebruiken ???
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$qry=mysql_query("SELECT * FROM categorieen") or die mysql_error();
while($row=mysql_fetch_assoc($qry)) {
echo '<a href="filmpjes.php?id='.$row["id"].'">'.$row["naam"].'</a>';
}
// begin filmpjes ophalen
if (isset($_GET["id"])) {
$qry=mysql_query("SELECT * FROM youtube WHERE link_id = ".$_GET['id']) or die(mysql_error());
while ($row=mysql_fetch_assoc($qry)) {
//filmpjes echo'en
}
}
else {
echo "geen id opgegeven, redirect naar categorieen";
}
?>
$qry=mysql_query("SELECT * FROM categorieen") or die mysql_error();
while($row=mysql_fetch_assoc($qry)) {
echo '<a href="filmpjes.php?id='.$row["id"].'">'.$row["naam"].'</a>';
}
// begin filmpjes ophalen
if (isset($_GET["id"])) {
$qry=mysql_query("SELECT * FROM youtube WHERE link_id = ".$_GET['id']) or die(mysql_error());
while ($row=mysql_fetch_assoc($qry)) {
//filmpjes echo'en
}
}
else {
echo "geen id opgegeven, redirect naar categorieen";
}
?>
Dan gebruik je als link: filmpjes.php?cat=echo "id"; en dan laat je php alles ophalen where cat_id = $_GET["id"]......
Wanneer je dan een categorie naam aanpast is er ook niets aan de hand....(id blijft namelijk zelfde).
mvg Joost.
Code is niet getest.....
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
Chris Kortaan schreef op 01.12.2008 12:44:
[...]
Nee, koppeltabel zou juist wel van toepassing zijn. Een filmpje kan aan meerdere categorieen worden gekoppeld.
[...]
Nee, koppeltabel zou juist wel van toepassing zijn. Een filmpje kan aan meerdere categorieen worden gekoppeld.
Vraag maar aan anderen, denk dat de meeste die een beetje ervaring hebben met MySQL normalisatie het met me eens zullen zijn..
Collatie tabellen zijn altijd verstandig, of je maar een koppel heb of meerdere, ik maak ze over het algemeen altijd (mits er überhaupt een koppeling is natuurlijk).
Als je later besluit toch meerdere categorieën (in dit geval) te koppelen heb je de voorbereiding al achter de hand ;)
id (primary key)
filmpje_id (foreign key)
categorie (foreign key)
Je moet ook zeker rekening houden met de toekomst, maar om overal nu een koppeltabel voor te maken is niet nodig. Stel dat het maar mogelijk is dat een film in 1 categorie valt. Dat maak je wel een tabel met alle categorieën, maar je koppelt ze aan de film door bij de film een veld toe te voegen waarin je alleen het id van die film bewaart.
Het is dus in tegenstelling tot wat Satsume zegt niet altijd nodig collatie tabellen te maken, dat is echt afhankelijk van de situatie.
@Eamonn
Omdat een filmpje dus onder meerdere categorieën kan vallen. Door het cat_id in de tabel te plaatsen zoals jij dat schetst, beperk je jezelf.
En ook met een koppeltabel is het heel eenvoudig, als je de naam van de categorie meeneemt dan komt het altijd goed, omdat de naam via de koppeltabel uit de categorie tabel wordt gehaald.
Satsume schreef op 01.12.2008 15:46:
Joost, dit waarschijnlijk niet ivm wat Chris al aanduidde:
Chris Kortaan schreef op 01.12.2008 12:44:
[...]
Nee, koppeltabel zou juist wel van toepassing zijn. Een filmpje kan aan meerdere categorieen worden gekoppeld.
[...]
Nee, koppeltabel zou juist wel van toepassing zijn. Een filmpje kan aan meerdere categorieen worden gekoppeld.
Inderdaad, dan klopt het wel ja........
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
Lul niet altijd uit m'n nek hoor ;-)
Robert_Deiman schreef op 01.12.2008 16:07:
Je moet ook zeker rekening houden met de toekomst, maar om overal nu een koppeltabel voor te maken is niet nodig. Stel dat het maar mogelijk is dat een film in 1 categorie valt. Dat maak je wel een tabel met alle categorieën, maar je koppelt ze aan de film door bij de film een veld toe te voegen waarin je alleen het id van die film bewaart.
Het is dus in tegenstelling tot wat Satsume zegt niet altijd nodig collatie tabellen te maken, dat is echt afhankelijk van de situatie.
Je moet ook zeker rekening houden met de toekomst, maar om overal nu een koppeltabel voor te maken is niet nodig. Stel dat het maar mogelijk is dat een film in 1 categorie valt. Dat maak je wel een tabel met alle categorieën, maar je koppelt ze aan de film door bij de film een veld toe te voegen waarin je alleen het id van die film bewaart.
Het is dus in tegenstelling tot wat Satsume zegt niet altijd nodig collatie tabellen te maken, dat is echt afhankelijk van de situatie.
Absoluut mee eens, ik heb dit denk ik onder het kopje "common sense" geplaatst, een koppel tabel maken tussen dieren en wat voor een soort deze zijn (zoogdieren, etc.) is lichtelijk overdreven, aangezien een dier niet onder meerdere categorieën kan vallen.
(overigens is dat laatste niet helemaal waar, maar een duidelijk genoeg voorbeeld om te begrijpen wat ik bedoel ;) )
Het is al gelukt ik heb gewoon aan tabel youtube cat_id toegevoegd en het lukt.
Je snapt dat dit een tijdelijke oplossing is? Zodra jij meerdere categorieen wilt, gaat MySQL op z'n muil ;-)