Ik heb de tutorial gevold van het zoeken in de database.
Mijn vraag is alleen hoe ik kan zoeken ik alle tabellen?

Met vriendelijke groet,

Matthijs
Hoezo wil je zoeken in meerdere tabellen? In een goed datamodel komt 1 bepaalde eigenschap (vb. woonplaats) maar in 1 tabel voor en als jij dus naar records wilt zoeken met een specifieke woonplaats, hoef je dat maar in 1 tabel te doen.
Ik wil graag zoeken in de tabel Nieuws en de tabel Agenda.
SELECT ..... FROM ..... WHERE tabel1 LIKE '%zoekwoord%' OR tabel2 LIKE '%zoekwoord%'
select nieuws.info,agenda.datum from nieuws as nieuws, agenda as agenda


nieuws.info = tabel nieuws met info als veld

veel succes
Nog een vraagje :)

Hoe zorg ik ervoor dat ik in de rij titel en de rij bericht zoek?
Ik heb al geprobeerd om bij [SELECT * FROM nieuws WHERE bericht LIKE '%$HTTP_POST_VARS[zoekterm]%'";] achter bericht een komma te zetten en daar titel te typen, maar dan krijg ik een error:

Warning: Supplied argument is not a valid MySQL result resource in c:\www\skvr\zoek\search.php on line 47


Code:

if ($_POST['keuze'] == "nieuws"){
$sql = "SELECT * FROM nieuws WHERE bericht LIKE '%$HTTP_POST_VARS[zoekterm]%'";

//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($sql);

//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 1)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
echo "<p>Resultaat id: <b>$row[id]</b><br>";
echo "Resultaat tekst: <b>$row[bericht]</b></p>";
}

echo "<a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoekterm]</b></p>";

echo "<p><a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}

Met vriendelijke groet,

Matthijs
$HTTP_POST_VARS[zoekterm] ??? Dat is echt een stuk antiek. Vandaag de dag schrijf je dit als $_POST['zoekterm']. Dus niks geen HTTP en VARS maar wel keurig quotes om de key van de array.

Verder controleren of $res TRUE of FALSE is, wanneer de query is mislukt zal dit namelijk een FALSE opleveren. Met mysql_error() kun je dan de exacte foutmelding opvragen.
Ik heb nu iets wat ook niet werkt maar geeft wel even mijn bedoeling weer:

if ($_POST['keuze'] == "nieuws"){
//-- $HTTP_POST_VARS[zoekterm] is de naam van het zoekveld in het formulier wat we
//-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:
$sql = "SELECT * FROM nieuws WHERE bericht LIKE '%$_POST[zoekterm]%' AND titel LIKE '%$_POST[zoekterm]%'";
//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($sql);
//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 1)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
echo "<p>Resultaat id: <b>$row[id]</b><br>";
echo "<p>Resultaat id: <b>$row[titel]</b><br>";
echo "Resultaat tekst: <b>$row[bericht]</b></p>";
}

echo "<a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $_POST[zoekterm]</b></p>";

echo "<p><a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}

Reageren