Voor een website moet ik een zoekmachine maken die door de database zoekt.
Ik heb (oa) 1 tabellen waarin gezocht moet worden: songs en artists.
Je kan dan zoeken op songs->title en op artists->name. Ik heb nu
$lQuery = DB::query("SELECT * FROM songs WHERE songs.title LIKE(" . DB::escape('%' . $_GET['zoek'] . '%') . ") OR artists.name LIKE(" . DB::escape('%' . $_GET['zoek'] . '%') . ")");
maar dat werkt dus niet.
Om de resultaten te printen heb ik enkel de gegevens van songs nodig.
Wie o wie kan mij helpen?
Alvast bedankt voor het lezen :)
$lQuery = DB::query("SELECT
s.id,
s.title,
s.artist,
s.genre
FROM
songs AS s, artists AS a
WHERE
s.title LIKE (" . DB::escape('%' . $_GET['zoek'] . '%') . ")
OR
a.name LIKE (" . DB::escape('%' . $_GET['zoek'] . '%') . ")");
$lQuery = DB::query("SELECT DISTINCT
s.id,
s.title,
s.artist,
s.genre
FROM
songs AS s, artists AS a
WHERE
s.title LIKE (" . DB::escape('%' . $_GET['zoek'] . '%') . ")
OR
a.name LIKE (" . DB::escape('%' . $_GET['zoek'] . '%') . ")");
$lQuery = DB::query("SELECT DISTINCT
s.id,
s.title,
s.artist,
s.genre
FROM
songs AS s, artists AS a
WHERE
s.title LIKE (" . DB::escape('%' . $_GET['zoek'] . '%') . ")
OR
a.name LIKE (" . DB::escape('%' . $_GET['zoek'] . '%') . ")");
@Bart V B de tip DINSTINCT gebruiken wordt te pas en te onpas gegeven. Dubbele records en men past al snel een DISTINCT toe zonder uit te zoeken waarom er dubbele records voorkomen. DISTINCT wordt dus vaak oneigenlijk toegepast en dat zal later altijd nieuwe problemen introduceren. En on-this-topic: een DISTINCT waarbij ook een id wordt geselecteerd (dat meestal een unique id is) doet helemaal NIETS.