Hoi,
Het probleem is als volgt:
Ik heb 2 tabellen (in mysql) die ik met elkaar wil vergelijken. In de ene tabel staan boeken en in de andere (tussen)tabel genres.
Elk boek behoort een genre te hebben, maar nu wil ik voor mijn website een functie maken die controleert of er ook boeken zijn die geen genre hebben.
De tabel met boeken moet dus worden vergeleken met de tabel met genres. Elk boek wat geen genre heeft moet vervolgens worden geprint.
Globaal zien de tabellen er als volgt uit:
tabel: 1 tabel: 2
[isbn] [isbn]
[titel] [genre]
Tabellen met elkaar vergelijken dus, en wat wel in tabel 1 voorkomt, maar niet in 2 is dus een boek zonder genre.
Aangezien mysql geen subselects toelaat wilde ik dit met PHP loops doen, maar ik kom er (na hele tijd prutsen) er niet uit.
Een voorbeeld stukje code wat ik heb is:
Het resultaat is dan een enorme lijst met isbn-nummers. Het ligt hem vast aan de while loops, maar met andere loops krijg ik het ook niet voor elkaar.
Met ASP werkt dit overigens wel, met while en movenext.
Hopelijk kunnen jullie me verder helpen.
Het probleem is als volgt:
Ik heb 2 tabellen (in mysql) die ik met elkaar wil vergelijken. In de ene tabel staan boeken en in de andere (tussen)tabel genres.
Elk boek behoort een genre te hebben, maar nu wil ik voor mijn website een functie maken die controleert of er ook boeken zijn die geen genre hebben.
De tabel met boeken moet dus worden vergeleken met de tabel met genres. Elk boek wat geen genre heeft moet vervolgens worden geprint.
Globaal zien de tabellen er als volgt uit:
tabel: 1 tabel: 2
[isbn] [isbn]
[titel] [genre]
Tabellen met elkaar vergelijken dus, en wat wel in tabel 1 voorkomt, maar niet in 2 is dus een boek zonder genre.
Aangezien mysql geen subselects toelaat wilde ik dit met PHP loops doen, maar ik kom er (na hele tijd prutsen) er niet uit.
Een voorbeeld stukje code wat ik heb is:
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
| $q1 = "select distinct b.isbn from boeken b "; $r1 = mysql_query($q1, $connection); $aantal1 = mysql_num_rows($r1); $q2 = "select distinct tbg.isbn from tbg "; $r2 = mysql_query($q2, $connection); $aantal2 = mysql_num_rows($r2); print("<p><b>$aantal1</b> boeken in db</p>\n<p>\n"); print("<p><b>$aantal2</b> boeken met genre in db</p>\n<p>\n"); while ($row1 = mysql_fetch_row($r1)) { while ($row2 = mysql_fetch_row($r2)) { if ($row2[0] != $row1[0]): print("dit boek heeft geen genre: $row1[0]<BR>"); endif; } } |
Het resultaat is dan een enorme lijst met isbn-nummers. Het ligt hem vast aan de while loops, maar met andere loops krijg ik het ook niet voor elkaar.
Met ASP werkt dit overigens wel, met while en movenext.
Hopelijk kunnen jullie me verder helpen.