PHP Suche Skript für die mySQL-Datenbank, die nur 3 Buchstaben arbeitet
Ich versuche eine php Suche in mySQL-Datenbank. der folgende code funktioniert zwar lustig, aber sehr gut erkennen, wenn ich nur 3 Buchstaben eingegeben..zB ich habe ein Produkt namens 'deepbluehealth omega', wenn ich Schreibe 'ome', die es abgeholt, wenn ich Typ 'ega' er abgeholt, wenn ich Typ "omega" kein Ergebnis angezeigt, auch wenn ich der Typ 'deepbluehealth' es abholen, kein problem.
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$search_output = "";
if(isset($_POST['searchquery']) && $_POST['searchquery'] != ""){
$searchquery = $_POST['searchquery'];
if($_POST['filter1'] == "Whole Site"){
$sqlCommand = "(SELECT id, product_name FROM products WHERE product_name LIKE '%$searchquery%' OR details LIKE '%$searchquery%') ";
}
require_once("storescripts/connect_to_mysqli.php");
$query = mysqli_query($myConnection,$sqlCommand) or die(mysqli_error($myConnection));
$count = mysqli_num_rows($query);
if($count > 1){
$search_output .= "<hr />$count results for <strong>$searchquery</strong><hr />$sqlCommand<hr />";
while($row = mysqli_fetch_array($query)){
$id=$row["id"];
$product_name = $row["product_name"];
$details= $row["details"];
$category=$row["category"];
$subcategory=$row["subcategory"];
$search_output .= "ID: $id <br/> Name: $product_name -<br/>$details<br />$category<br/>$subcategory<br/>
<a href='product.php?id=$id'>link</a><br/>
";
} //close while
} else {
$search_output = "<hr />0 results for <strong>$searchquery</strong><hr />$sqlCommand";
}
}
?>
<html>
<head>
</head>
<body>
<h2>Search the Exercise Tables</h2>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Search For:
<input name="searchquery" type="text" size="44" maxlength="88">
Within:
<select name="filter1">
<option value="Whole Site">Whole Site</option>
</select>
<input name="myBtn" type="submit">
<br />
</form>
<div>
<?php echo $search_output; ?>
</div>
</body>
</html>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist dein problem:
Werden muss:
Zu berücksichtigen, für den Fall, es gibt genau ein Ergebnis. Wahrscheinlich ist dies das einzige Produkt, das abgestimmt "omega", aber in jedem anderen Fall, einem anderen Produkt passiert ist, zu entsprechen.
Nette random-Funktion, die ich nicht erklären kann, auf der Grundlage des Kodex nur könnten Sie uns die Struktur der Tabelle /Indizes und einigen Beispiel-Daten?
Extra-Tipps
Nicht verwenden, $_SERVER['PHP_SELF'] wenn Sie buchen möchten, auf der gleichen Seite, weil aus dem cross-side-scripting-Angriffe, die passieren könnte, jetzt, oder verwenden sollte,
Ja, Sie sollten lassen Sie die Aktion leer
Und
Laufen $search_output, wenn man das echo durch die Funktion htmlentities zu countermeasue gegen die meisten cross-side-scripting-Angriffe.