Ik ben bezig met een film database waar een select groepje kennissen toegang tot heeft om van elkaar te zien welke films we hebben etc.
Onder andere heb ik de volgende tabellen:
users
user_ID
user_username
etc
films
film_ID
film_naam
etc
eigenaars
eig_ID
eig_film_ID
eig_user_ID
In film tabel staan alle films. In de eigenaar tabel worden users dus aan films gekoppeld om op te bepalen wie welke film heeft. Dit krijg ik er ook allemaal uit enzo, alleen ik probeer nu voor elkaar te krijgen om te zien welke films er allemaal in de films tabel staan, maar NIET aan mijn account gekoppeld zijn.
Ik heb nu de volgende code:
De eerste query haalt dus film ID's uit de eigenaars tabel die niet aan een speficieke gebruiker gekoppeld zijn. De 2e query selecteerd dus de film, zodat ik de naam kan displayen etc.
Helaas zitten er dus toch films tussen die WEL aan mijn account gekoppeld zijn. Ik denk dat dit komt, omdat de DISTINCT pas op het einde gebeurd, terwijl je verwacht dat hij als eerst DISTINCT doet en daarna pas de rest van de query.
Misschien een beetje een ingewikkeld verhaal
dus als er nog iets onduidelijk is, let me know!
Onder andere heb ik de volgende tabellen:
users
user_ID
user_username
etc
films
film_ID
film_naam
etc
eigenaars
eig_ID
eig_film_ID
eig_user_ID
In film tabel staan alle films. In de eigenaar tabel worden users dus aan films gekoppeld om op te bepalen wie welke film heeft. Dit krijg ik er ook allemaal uit enzo, alleen ik probeer nu voor elkaar te krijgen om te zien welke films er allemaal in de films tabel staan, maar NIET aan mijn account gekoppeld zijn.
Ik heb nu de volgende code:
PHP:
1
2
3
4
5
6
7
| $query = mysql_query("SELECT DISTINCT ( eig_film_ID ) AS IDtje FROM eigenaars WHERE eig_user_ID != '".$_GET['user_ID']."'") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { $query2 = mysql_query("SELECT * FROM films WHERE film_ID = '".$row['IDtje']."'") or die(mysql_error()); $row2 = mysql_fetch_assoc($query2); echo "".$row2['film_naam']." | <b>".$row2['film_ID']."</b><br>"; } |
De eerste query haalt dus film ID's uit de eigenaars tabel die niet aan een speficieke gebruiker gekoppeld zijn. De 2e query selecteerd dus de film, zodat ik de naam kan displayen etc.
Helaas zitten er dus toch films tussen die WEL aan mijn account gekoppeld zijn. Ik denk dat dit komt, omdat de DISTINCT pas op het einde gebeurd, terwijl je verwacht dat hij als eerst DISTINCT doet en daarna pas de rest van de query.
Misschien een beetje een ingewikkeld verhaal
[ Voor 7% gewijzigd door RadioheadRules op 09-06-2004 22:47 ]