|
Categorieën >
PHP & SQL
Meerdere id's
|
|
|
offline
|
Lid
|
Hallo,
Het ene probleem is opgelost als het andere er alweer bijkomt.
Het is me gelukt met JOINS twee tables aan elkaar te koppelen. Nu is het zo dat een tv serie meerdere acteurs bevat.
Als ik nu meerdere acteur_id's invul, roept die echter alleen de eerste op. Ik ben dus beperkt tot een acteur oproepen. heeft iemand een idee, hoe dat op te lossen? |
10 antwoorden
|
|
|
offline
|
JS interesse
|
je moet in de naam van id iets variabels toevoegen:
bijvoorbeeld:
php_1 php_2 en dan pak je de value voor de "_"
als je geen variabele hebt maak je dervoor een php lus.
|
|
|
|
offline
|
Lid
|
...
Tv serie pagina ::
The A-Team
acteurs: Dirk Benedict, George Peppard, Mr T
Verhaal: blabla
...
Nu kan ik dus alleen maar 1 acteur, Dirk Benedict oproepen.. Hoop dat je snapt wat ik bedoel.
|
|
|
|
offline
|
Onbekend
|
yetti4 hoe kun je een reactie geven pretenderend dat het een antwoord is, terwijl er niet eens een duidelijke vraag gesteld is?!
niet dat jouw bericht verder iets waard is...
|
|
|
|
offline
|
Project Manager
|
Nee, we zullen maar zeggen dat jij het nu 'normaal' brengt.
|
|
|
|
offline
|
Lid
|
@jopiedenogwat
Ik heb wel een vraag gesteld. Wat heb ik aan jou post? Niks.
Hoop dat er iemand is die het wel begrijpt en eventueel me verder kan helpen.
Ik heb zegmaar
naam
achternaam
bij de acteur
en bij de serie even voor het gemak
name
a_id (daar waar ik dus maar 1 id kan invullen, maar het er meerdere moeten zijn)
verhaal
Weet iemand nu wat ik bedoel ,en wat ik kan doen om het op te lossen?
|
|
|
|
offline
|
PHP gevorderde
|
een simpele manier is om een extra tabel te maken met serie_id en acteur_id.. en voor elke acteur/serie combinatie maak je een nieuwe veld aan..
zo kan je makkelijk de acteurs selecteren van een serie.. maar ook kijken in welke series die acteur allemaal zit..
en laat die jopiedinges maar lekker kletse.. komt niks zinnigs uit dat kind..
|
|
|
|
offline
|
PHP gevorderde
|
De fout zit hem in je table eigenschappen.
Waarschijnlijk heb je in de tabel series veldnaam 'name' als primary key staan (ff googlen als je niet weet wat dit is). Dit houdt in dat de naam van de serie maar 1 keer voor mag komen.
Voordat je tabellen in elkaar gaat zetten dien je te normaliseren (again, google is your friend). Hierbij wordt uitgegaan van een principe. Er mag niet een veel op veel relatie voorkomen. Dat is nu wel. Hoezo dan? Nou, let op:
In een serie spelen meerdere acteurs (veel) en acteurs kunnen in meerdere series spelen(veel).
Dit houdt in dat je een tussentabel moet maken. Neem de volgende velden:
- Serieid (Primary key), integer
- Acteurid (Primary key), integer
Nu kan een serie meerdere acteurs bevatten, en een acteur kan in meerdere series spelen.
Ik hoop dat je het een beetje snapt. Zo niet, dan moet je toch even wat tutorials lezen over normaliseren. Dan snap je het wel ;)
|
TriX – 03/03/2008 10:37 (Laatst gewijzigd op 03/03/2008 10:38)
|
|
offline
|
HTML interesse
|
Indd... Wat Ranco zegt is de juiste manier...
Wanneer 2 tabellen met elkaar gerelateerd zijn kan dat via een primary key... In jouw geval is het echter geen 1:1 relatie, geen 1:veel relatie maar een veel:veel relatie.
Nu moet je gebruik maken van een koppeltabel... Hierin zet je het id van de serie en het id van de acteur...
Bijv:
Serie1
Serie2
Serie3
Ateur1
Ateur2
Ateur3
In S1 speelt A1 en A2...
In S2 Speelt A2 en A3...
In S3 Speelt A1, A2 en A3...
Je data in je koppeltabel wordt dan zo:
S_id -- A_id
S1 ---- A1
S1 ---- A2
S2 ---- A2
S2 ---- A3
S3 ---- A1
S3 ---- A2
S3 ---- A3
Succes!
|
|
|
|
offline
|
PHP beginner
|
Wanneer twee tabellen een relatie hebben, gebruik je een foreign key. Verder met de twee hierboven.
|
|
|
|
offline
|

PHP expert
|
Citaat: Hierbij wordt uitgegaan van een principe. Er mag niet een veel op veel relatie voorkomen.
Euh, voor zover ik weet heeft dit niets met normaliseren te maken. Bij normaliseren ga je van volgende 2 principes uit: geen anomaliën en geen redundantie.
Veel op veel relaties tegengaan heeft eerder te maken met systeemanalyse dan met normaliseren. Verder wel een goede duidelijke tekst:-)
|
Dit onderwerp is gesloten.
|
|
|