Hallo Allemaal,
Ik moet voor mijn stage een zoekbalk maken die gaat zoeken in een php database. Ik heb eigenlijk nog nul ervaring met php of html of wat dan ook. Ik had twee scripts gevonden maar het werkt nog niet helemaal weet iemand wat ik verkeerd doe?
Dit zijn de twee scripts die ik heb.
" Zoek script"
<?
echo '<html>
<head><title>Zoeken</title></head>
<body>
<p><b>Zoek in de database:</b></p>
<p>
<form method="post" action="resultaat.php">
Zoekterm:<br>
<input type="text" name="zoekterm" size="30"><br>
<input type="submit" name="submit" value="Zoeken">
</p>
</BODY>
</HTML>';
?>
Ik heb deze als zoek.php opgeslagen en ook als zoek.html want dan kan ik hem openen en dan zie ik ook daadwerkelijk een zoek balk.
" Resultaat script"
<?
//-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
if (!@mysql_select_db("Database", @mysql_connect("Localhost", "User", "Password")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}
//-- $_POST['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 id,tekst FROM zoek_test WHERE tekst LIKE '%" . mysql_real_escape_string($_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 'Resultaat tekst: <b>' . htmlspecialchars($row['tekst']) . '</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>';
}
?>
Dit sla ik op als resultaat.php de zoek.html linkt dus door naar dit script. Maar als ik iets in type in zoek.html en druk op zoek dan krijg ik een nieuwe pagina met dit script letterlijk weergegeven. Ik heb al verschillende inlog geprobeerd te veranderen in resultaat.php maar ook dit werkt niet iemand enig idee?
Ik moet voor mijn stage een zoekbalk maken die gaat zoeken in een php database. Ik heb eigenlijk nog nul ervaring met php of html of wat dan ook. Ik had twee scripts gevonden maar het werkt nog niet helemaal weet iemand wat ik verkeerd doe?
Dit zijn de twee scripts die ik heb.
" Zoek script"
<?
echo '<html>
<head><title>Zoeken</title></head>
<body>
<p><b>Zoek in de database:</b></p>
<p>
<form method="post" action="resultaat.php">
Zoekterm:<br>
<input type="text" name="zoekterm" size="30"><br>
<input type="submit" name="submit" value="Zoeken">
</p>
</BODY>
</HTML>';
?>
Ik heb deze als zoek.php opgeslagen en ook als zoek.html want dan kan ik hem openen en dan zie ik ook daadwerkelijk een zoek balk.
" Resultaat script"
<?
//-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
if (!@mysql_select_db("Database", @mysql_connect("Localhost", "User", "Password")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}
//-- $_POST['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 id,tekst FROM zoek_test WHERE tekst LIKE '%" . mysql_real_escape_string($_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 'Resultaat tekst: <b>' . htmlspecialchars($row['tekst']) . '</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>';
}
?>
Dit sla ik op als resultaat.php de zoek.html linkt dus door naar dit script. Maar als ik iets in type in zoek.html en druk op zoek dan krijg ik een nieuwe pagina met dit script letterlijk weergegeven. Ik heb al verschillende inlog geprobeerd te veranderen in resultaat.php maar ook dit werkt niet iemand enig idee?
Laatst bewerkt:
