Mysql 2 tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick

Nick

29/11/2008 22:09:00
Quote Anchor link
Ik heb twee tabellen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


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
 
PHP hulp

PHP hulp

24/11/2024 13:16:54
 
Klaasjan Boven

Klaasjan Boven

29/11/2008 22:20:00
Quote Anchor link
?categorie = .....

aan je linken toevoegen. Ik wil je adviseren eerst een goede cursus te volgen.
 
--

--

29/11/2008 22:41:00
Quote Anchor link
Hier moet je volgens mij een koppeltabel maken met film id en categorie id.
 
Nick

Nick

29/11/2008 23:04:00
Quote Anchor link
en hoe moet dat dan?
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/11/2008 00:48:00
Quote Anchor link
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
 
Nick

Nick

30/11/2008 10:06:00
Quote Anchor link
dankje zal het gelijk uitproberen. als het niet lukt zeg ik het wel.
 

01/12/2008 12:44:00
Quote Anchor link
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


Nee, koppeltabel zou juist wel van toepassing zijn. Een filmpje kan aan meerdere categorieen worden gekoppeld.
 
Satsume

Satsume

01/12/2008 13:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
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'] }}


of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    WHERE c.naam like '%{{ JE NAAM VAN BIJV. $_GET['categorie'] }}%'


edit: stuk opmaak verwijderd & het is c.naam niet c.name
Gewijzigd op 01/01/1970 01:00:00 door Satsume
 
/home/joost

/home/joost

01/12/2008 14:54:00
Quote Anchor link
Beste Nick,

Waarom niet gewoon bij tabel youtube een cat_id gebruiken ???


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
}

?>


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
 
Satsume

Satsume

01/12/2008 15:46:00
Quote Anchor link
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.
 

01/12/2008 15:54:00
Quote Anchor link
Juist :-)

Vraag maar aan anderen, denk dat de meeste die een beetje ervaring hebben met MySQL normalisatie het met me eens zullen zijn..
 
Satsume

Satsume

01/12/2008 15:57:00
Quote Anchor link
Yup, zie mijn post ;)

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 ;)
 
--

--

01/12/2008 16:02:00
Quote Anchor link
Iets in deze trant?
id (primary key)
filmpje_id (foreign key)
categorie (foreign key)
 
Robert Deiman

Robert Deiman

01/12/2008 16:07:00
Quote Anchor link
In dit geval met een 1 op meer relatie moet je altijd een koppeltabel gebruiken, anders krijg je redundantie. Ik heb al heel wat genormaliseerd en kan zeker zeggen dat het hier wel van toepassing is om een koppeltabel te maken.

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.
 
/home/joost

/home/joost

01/12/2008 16:11:00
Quote Anchor link
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.



Inderdaad, dan klopt het wel ja........
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 

01/12/2008 16:18:00
Quote Anchor link
Lul niet altijd uit m'n nek hoor ;-)
 
Satsume

Satsume

01/12/2008 16:24:00
Quote Anchor link
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.


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 ;) )
 
Nick

Nick

01/12/2008 16:31:00
Quote Anchor link
Het is al gelukt ik heb gewoon aan tabel youtube cat_id toegevoegd en het lukt.
 

01/12/2008 16:34:00
Quote Anchor link
Je snapt dat dit een tijdelijke oplossing is? Zodra jij meerdere categorieen wilt, gaat MySQL op z'n muil ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.