Zoeken in 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%'
nieuws.info = tabel nieuws met info als veld
veel succes
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
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.
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>";
}
}