Wie man eine Suche erstellen, mit PHP, mysqli-und ein html-Formular
Ich möchte ein Formular erstellen in dem der Benutzer eine Suchanfrage eingeben und es abholen, die richtigen Werte aus einer Datenbank ab und zeigen Sie, aus irgendeinem Grund kann ich nicht bekommen, meine Anfrage zu arbeiten, es zeigt nur "konnte nicht nach"
Hier ist mein php code
HTML:
<?php
include "connect.php";
$output = '';
if(isset($_POST['search'])) {
$search = $_POST['search'];
$search = preg_replace("#[^0-9a-z]i#","", $search);
$query = mysqli_query("SELECT * FROM house WHERE town LIKE '%$search%'") or die ("Could not search");
$count = mysqli_num_rows($query);
if($count == 0){
$output = "There was no search results!";
}else{
while ($row = mysqli_fetch_array($query)) {
$town = $row ['town'];
$street = $row ['street'];
$bedrooms = $row ['bedrooms'];
$bathroom = $row ['bathrooms'];
$output .='<div> '.$town.''.$street.''.$bedrooms.''.$bathrooms.'</div>';
}
}
}
?>
Hier ist meine form
HTML:
<form action ="home.php" method = "post">
<input name="search" type="text" size="30" placeholder="Belfast"/>
<input type="submit" value="Search"/>
</form>
<?php print ("$output");?>
- ersetzen
'%$search%'
mit'%".$search."%'
... - hat nicht funktioniert, sagt noch " Konnte nicht suchen!'
echo
Ihre AbfrageSELECT * FROM house WHERE town LIKE '%$search%'
und versuchen die Abfrage von phpmyadmin oder mysql...- Dies könnte helfen. askseeker.com/code-snippets/search-form-php-using-mysqli
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist nicht die Verbindung zu deiner DB in der Abfrage:
gibt es keine Verbindung-variable (unbekannt, was Sie zum herstellen der Verbindung mit)
Aus der Anleitung http://php.net/manual/en/mysqli.query.php
Objektorientierten Stil
mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
Prozeduraler Stil
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
herauszufinden, die Sie verwenden
mysqli_
zu verbinden. Wenn Siemysql_
oder PDO, um mit zu verbinden, das wird nicht funktionieren. Die unterschiedlichen MySQL-APIs nicht vermischen miteinander.Plus, statt
or die ("Could not search")
tunor die(mysqli_error($connection))
alle Fehler abzufangen, wenn überhaupt.Hinzufügen "Fehler-reporting an den Anfang der Datei(en), die helfen, Fehler zu finden.
Sidenote: Error reporting sollte nur durchgeführt werden, in der Inszenierung, und nie Produktion.
Beispiel
mysqli
Verbindung:Für weitere Informationen, besuchen Sie:
Error reporting should only be done in staging, and never production.
$connection
als ein Beispiel. Sie haben, um es zu ersetzen mit der, die Sie gerade verwenden.$query = mysqli_query($con, "SELECT * FROM house WHERE town LIKE '%$search%'") or die ("Could not search");
- Hier habe ich$con
, zu sehen, dass was Sie verwenden, als variable in deiner anderen Frage. Sie müssen übergeben Sie die Verbindung zu Ihrer Abfrage, einfach neu laden meine Antwort auch. @RebekkaDen
$connection
ist die variable deklariert in Ihrem connect.php zu Ihrer Datenbank zu verbinden .Sollten Sie aus der
$result
vor der$count
.