Ga naar inhoud

Simpele zoekfunctie


Aanbevolen berichten

Hey allemaal,

ik ben een beetje PHP aan 't leren.. Maar hier kom ik niet echt uit.

Ik heb dus dit:

productsearch.php:

<html>
<body>
<form action="found.php" method="post">
 <p>Product naam:<br>
   <input type="text" name="product" />
 </p>
 <p>
   <input type="submit" name="button" id="button" value="Zoeken">
   <br>
 </p>
</form>

found.php:

<center><?php
include('database.php');

mysql_select_db("stock", $con);

if(isset($_POST['product']))
   $id = $_POST['product'];
$result = mysql_query("SELECT * FROM Stock
WHERE Productnaam='$product'");

echo "<table style='text-align:center' border='1' cellspacing='0' cellpadding='0' width='850' style='text-align:center'>
<tr>
<th>ID</th>
<th>Productnaam</th>
<th>Categorie</th>
<th>Inkoopprijs</th>
<th>Verkoopprijs</th>
<th>Aantal in stock</th>
</tr>";

while($row = mysql_fetch_array($result))
 {
 echo "<tr>";
 echo "<td>" . $row['ID'] . "</td>";
 echo "<td>" . $row['Productnaam'] . "</td>";
 echo "<td>" . $row['Categorie'] . "</td>";
 echo "<td>" . $row['Inkoopprijs'] . "</td>";
 echo "<td>" . $row['Verkoopprijs'] . "</td>";
 echo "<td>" . $row['Aantal'] . "</td>";
 echo "</tr>";
 }
echo "</table>";

?> </center>

Wat is nu de bedoeling?

Nu moet ik dus de VOLLEDIGE productnaam invoeren voordat ik er 1 te zien krijg..

Nu zou ik deze "zoekfunctie" willen veranderen zodat ik maar een deel of woord van de productnaam moet invoeren en dat die zo toch de producten met het woord/deel weergeeft.

Misschien een beetje uitleg bij de veranderingen zou behulpzaam zijn, maar is geen must ^^

Alvast bedankt!

Link naar reactie
Delen op andere sites

Om dit te bereiken moet je in found.php de volgende regel zoeken:

$result = mysql_query("SELECT * FROM Stock
WHERE Productnaam='$product'");

en vervangen door dit:

$result = mysql_query("SELECT * FROM Stock
WHERE Productnaam LIKE '%$product%'");

Het gene wat ik heb veranderd is eigenlijk het volgende:

Wat de SQL code eerst deed is zoeken in een tabel waar de productnaam is gelijk aan de ingevulde tekst. Dus de productnaam moet gelijk zijn aan de productnaam die in de database zit. Als je dus een deel van de naam invult komt deze niet overeen en zal er dus niets uit komen.

Wat ik dus nu heb veranderd is dat hij zoekt naar een productnaam die lijkt op de ingevulde gegevens. Om deze ingevulde gegevens heb ik nog 2 procent tekens gezet zodat hij ook zoekt als je een woord niet volledig af hebt gemaakt.

Stel het product heet dekbedovertrek. Je vult bij het zoeken het volgende in bedover. Dan zal hij het product dekbedovertrek weergeven dat deze gevonden is omdat de ingevulde gegevens lijken op de gegevens uit de database.

Ik hoop dat je hier wat mee kunt. Het kan zijn dat de single quotes (') weg gehaald moeten worden. Of dat de procent-tekens aan de andere kant van de single quotes moeten staan, maar dat weet ik niet 100% zeker.

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.