Hallo,
Ik zit met het volgende:

In de tabel film staat bij film_genre het volgende: 1,4,16

De inhoud van film_genre komt uit een genre database en de getallen zijn dan de id's van de genre tabel.

Nu wil ik graag een zoek functie maken. maar als ik dan zoek op film_genre=%1% dan vind ik ook 16

ik gebruik dit deel van de SQL:
het staat in een loopje.

$SQLfilmlist .= " film_genre LIKE '%".$film_genre_[$a]."%'";

Weet iemand of hier wat aan te doen is?
Ja. Een ander datamodel maken. Je moet een tabel films, een tabel genres, en een koppeltabel films_genres hebben.

films
-------------
id
titel

genres
-------------
id
genre

films_genres
--------------
film_id
genre_id

De relatie films - genres is namelijk van het type veel op veel, en dat hoor je op te lossen met een koppeltabel.
ja daar had ik ook al aan zitten te denken.. vrees dat er weinig anders op zit.

ik kan mischien ook nog alleen bij het zoeken de waarders omzetten naar 2 digits
maar heeft iemand een idee van de code dan:
dus dat:
$a = 1;
dat dat word 01
<?php
$getal = 1;
$getal = sprintf ('%02d', $getal);
echo $getal; // output: 01
?>
oke ik ga even verder stoeien :) bedankt
$SQLfilmlist .= " film_genre LIKE '%".$film_genre_[$a]."%'";

Waarom een LIKE vergelijking, als je op het nummer zoekt?

Kan aan mij liggenhoor, maar dan zou je toch gewoon:

$SQLfilmlist .= " film_genre =".$film_genre_[$a];
Nogmaals: het is veel beter om je datamodel aan te passen. Veldinhoud als: 01,03,05 is databasevervuiling.
@ Robert: omdat hij het zo heeft:

In de tabel film staat bij film_genre het volgende: 1,4,16

en dan moet je met LIKE gaan werken...
Jan Koehoorn schreef op 04.10.2006 21:29
@ Robert: omdat hij het zo heeft:

In de tabel film staat bij film_genre het volgende: 1,4,16

en dan moet je met LIKE gaan werken...


Sorry Jan, niet goed gelezen, gebeurt me wel vaker :S
oke dan ga ik voor de koppel tabel
Is je tabel al groot? Want anders weet ik ook nog wel een manier om het met een script om te zetten.

Reageren