Hoe kan ik zoeken in meerdere tabellen van één database in MySql?

In één tabel lukt uiteraard:

$sql = "SELECT * FROM tabel1 WHERE naam LIKE '%$HTTP_POST_VARS[zoekterm]%'";

Hoe kan ik bijvoorbeeld in tabel1 én in tabel2 zoeken. Als er in tabel 1 niks staat, dat er nog wel zoekresultaten van tabel2 worden weergegeven en andersom. Zeg maar zo iets:

$sql2 = "SELECT * FROM tabel1.naam, tabel2.naam WHERE naam LIKE '%$HTTP_POST_VARS[zoekterm]%'";

Snappen jullie wat ik bedoel, en kan dit?
Sebas

WHERE .... LIKE ...... OR .... LIKE .....

$HTTP_POST_VARS[zoekterm]
Dit is antiek

Gebruik
$_POST['zoekterm']
$sql2 = "SELECT * FROM tabel1.naam, tabel2.naam WHERE tabel1.naam LIKE '%$_POST[zoekterm]%' OR tabel2.naam LIKE '%$_POST[zoekterm]%' ";

Maar wat nou als dan allebei de tabellen resultaten geven. Dan staat er toch OR (of?)

<?php
$sql2 = "SELECT * FROM tabel1, tabel2 WHERE tabel1.naam LIKE '%$_POST[zoekterm]%' OR tabel2.naam LIKE '%$_POST[zoekterm]%' ";
?>
bij from alleen tabelnaam gebruiken
sebas schreef op 04.04.2008 16:27
Maar wat nou als dan allebei de tabellen resultaten geven. Dan staat er toch OR (of?)

Ja, dus als er 'iets' wordt gevonden óf in tabel1 óf in tabel 2, dat maakt niet uit.

Haal $vars buiten de quotes en schrijf je query netter op.
<?php
$sql2 = "SELECT *
FROM tabel1.naam, tabel2.naam
WHERE
tabel1.naam LIKE '%" . $_POST['zoekterm'] . "%'
OR
tabel2.naam LIKE '%" . $_POST['zoekterm'] . "%' ";
?>
Let op: $_POST['zoekterm'] moet MET enkele quotes. Zonder quotes moet het een constante zijn.
@sebas, dit kan ook beter:
<?php
$sql2 = "SELECT * FROM tabel1, tabel2 WHERE tabel1.naam LIKE '%".$_POST['zoekterm']."%' OR tabel2.naam LIKE '%".$_POST['zoekterm']."%' ";
?>
Dit zal minder errors geven en dus sneller zijn. ;)

Edit, SanThe was me voor :(
Terence schreef op 04.04.2008 16:29
bij from alleen tabelnaam gebruiken

en
SanThe schreef op 04.04.2008 16:33
FROM tabel1.naam, tabel2.naam


Met ALLEEN tabelnamen bij from werkt hij goed, alleen hoe kan ik dan weergeven welke resultaten uit welke tabel komen?

En SanThe, wat bedoel je met
SanThe schreef op 04.04.2008 16:33
Let op: $_POST['zoekterm'] moet MET enkele quotes. Zonder quotes moet het een constante zijn.


sebas schreef op 04.04.2008 16:44
En SanThe, wat bedoel je met [quote='SanThe schreef op 04.04.2008 16:33']Let op: $_POST['zoekterm'] moet MET enkele quotes. Zonder quotes moet het een constante zijn.


[/quote]
<?php
// Niet zo
echo $_POST[zoekterm];
// Maar zo
echo $_POST['zoekterm'];
?>
Zie de kleurtjes.
oja had ik kunnen weten, dom van me. Dan rest de vraag 'Hoe kan ik laten zien van welke tabel de resultaten komen?'
sebas schreef op 04.04.2008 16:54
oja had ik kunnen weten, dom van me. Dan rest de vraag 'Hoe kan ik laten zien van welke tabel de resultaten komen?'
Wanneer je dat niet weet, dan is je datamodel fout. Je kunt (vrijwel) onmogelijk dezelfde soort data en dezelfde kolomnamen in meerdere tabellen hebben. Heb je wel genormaliseerd?
Is dat niet
tabel1 AS a, tabel2 AS b

En dan
a.naam en b.naam

Reageren