Crew algemeen |
|
Ik heb 2 tabbelen, namelijk movies en subtitles. De films hebben een title, id en een imdb nummer, de subtitles een id, release, author, language. Nu is het de bedoeling dat gebruikers kunnen zoeken op zowel release (wat meestal de naam van het filmbestand is) of op de title van de film, respectievelijk dus subtitles.release en movies.title. Beide velden zijn "full text".
$search = new query("SELECT movies.id as mid,movies.title,subtitles.release,subtitles.id as sid ".
"FROM subtitles ".
"INNER JOIN movies ".
"WHERE MATCH ('movies.title', 'subtitles.release') AGAINST('".mysql_real_escape_string($_POST['zoeken'])."', IN BOOLEAN MODE) ".
"ON (subtitles.movie = movies.id)");
$search = new query("SELECT movies.id as mid,movies.title,subtitles.release,subtitles.id as sid ". "FROM subtitles ". "INNER JOIN movies ". "WHERE MATCH ('movies.title', 'subtitles.release') AGAINST('".mysql_real_escape_string($_POST['zoeken'])."', IN BOOLEAN MODE) ". "ON (subtitles.movie = movies.id)");
Echter krijg ik (van mysql_error()) volgende error te zien:
Warning: Wrong parameter count for mysql_query() in /home/hdsubsnl/domains/hdsubs.nl/public_html/classes/query.class.php on line 32
Enigste wat daar staat is dit:
$this->q = mysql_query($this->query) or die(mysql_query());
(via de construct wordt de query onmiddelijk in $this->query gezet, dus deze heeft een waarde)
Als ik '21' als zoekterm ingeef (staat in de db in movies.title als "21 (2008)"), wordt dit de query:
SELECT movies.id as mid,movies.title,subtitles.release,subtitles.id as sid
FROM subtitles
INNER JOIN movies
ON (subtitles.movie = movies.id)
WHERE MATCH ('movies.title', 'subtitles.release') AGAINST('2', IN BOOLEAN MODE)
SELECT movies.id AS mid,movies.title,subtitles.release,subtitles.id AS sid FROM subtitles INNER JOIN movies ON (subtitles.movie = movies.id) WHERE MATCH ('movies.title', 'subtitles.release') AGAINST('2', IN BOOLEAN MODE)
|