Suchfeld mit Abfrage auf eine MySQL-Datenbank
Hallo zusammen,
ich steh mal wieder auf dem Schlauch.
Bin dabei ein Suchfeld auf die Webseite zu bringen. Jedoch gibt es irgendwo ein Problem.
Was möchte ich eigentlich? Das Suchfeld soll dazu dienen, Werte aus der MySQL Datenbank herauszulesen und die Suchtergebnisse darzustellen.
Hiermit definiere ich das Suchfeld und den Suchbutton (dargestellt als Bildchen).
Dann habe ich folgendes um die Daten aus der Datenbank zu lesen:
Erhalte keine Ausgabe, Webconsole gibt keine Meldung zurück. Das SQL-Statement funkioniert auch einwandfrei. Wird im Statement '%searchresult%' mit einem Suchbegriff ersätzt, erhalte ich Resultate aus der DB.
Vielleicht muss eine onclick-Funktion in den Button eingebaut werden, fällt mir grade ein beim Post schreiben =)
Über Hilfe wäre ich sehr dankbar.
Gruß, Sascha
ich steh mal wieder auf dem Schlauch.
Bin dabei ein Suchfeld auf die Webseite zu bringen. Jedoch gibt es irgendwo ein Problem.
Was möchte ich eigentlich? Das Suchfeld soll dazu dienen, Werte aus der MySQL Datenbank herauszulesen und die Suchtergebnisse darzustellen.
<form action="" method="post" target="_self">
<div style="float:left;margin-left:35px">
<input type="text" name="searchfield" style="border: 1px solid #c8c8c8;width:185px">
<input type="image" src="img/search.gif" name="enter_search" alt="Suche" >
<!-- <input type="submit" name="enter_search" value="Suche"> -->
</div>
</form>
Dann habe ich folgendes um die Daten aus der Datenbank zu lesen:
<?php
// Post-Variable bei der Suche im Feld
if(isset($_POST['enter_search']))
{
$DBHOST = "localhost";
$DBUSER = "root";
$DBPW = "";
$con = mysql_connect($DBHOST,$DBUSER,$DBPW) or die("Verbindungsversuch fehlgeschlagen" . mysql_error());
mysql_select_db("alchemie",$con) or die("Konnte die Datenbank nicht waehlen" . mysql_error());
$searchresult = trim(htmlentities(stripslashes(mysql_real_escape_string($_POST['searchfield']))));
$wsearch = "SELECT WName
FROM wirkungen
WHERE WName LIKE '%searchresult%'";
$post = mysql_query($wsearch);
while($lpost = mysql_fetch_array($post))
{
echo "<td align='center' valign='middle' style='width:16%'><h2>".$lpost['WName']."</h2></td>";
}
}
?>
Vielleicht muss eine onclick-Funktion in den Button eingebaut werden, fällt mir grade ein beim Post schreiben =)
Über Hilfe wäre ich sehr dankbar.
Gruß, Sascha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 226121
Url: https://administrator.de/contentid/226121
Ausgedruckt am: 08.11.2024 um 09:11 Uhr
6 Kommentare
Neuester Kommentar
Moin.
Find ich gut, das du versuchst die Usereingabe sauber zu bekommen, aber das äussere TRIM kannst du dir sparen und das HTMLENTITIES ist nur sinnvoll, wenn der gesuchte Text auch mit HTMLENTITIES in die DB geschrieben wurde.
/EDIT: und mit stripslashes() machst du dir die ganze escaperei wieder kaputt.
Es genügt also:
Zusätzlich sollte noch in zeile 18 ein HTMLENTITIES um den $lpost[...]
Fehleranzeige usw in PHP ist eingeschalten, oder?
lg,
Slainte
$searchresult = trim(htmlentities(stripslashes(mysql_real_escape_string($_POST['searchfield']))));
Find ich gut, das du versuchst die Usereingabe sauber zu bekommen, aber das äussere TRIM kannst du dir sparen und das HTMLENTITIES ist nur sinnvoll, wenn der gesuchte Text auch mit HTMLENTITIES in die DB geschrieben wurde.
/EDIT: und mit stripslashes() machst du dir die ganze escaperei wieder kaputt.
Es genügt also:
$searchresult = mysql_real_escape_string( trim($_POST['searchfield'] ) );
Zusätzlich sollte noch in zeile 18 ein HTMLENTITIES um den $lpost[...]
Fehleranzeige usw in PHP ist eingeschalten, oder?
lg,
Slainte
echo "<tr><td align='center' valign='middle' style='width:20%'><h2>".$lpost['Name']."</h2></td><td align='center' valign='middle' style='width:20%'><h3>".$lpost['Wirkung4']."</h3></td></tr>";
echo "<table>";
und hinter der Schleife nicht das das echo "</table>";
vergessen!also im ganzen so:
echo "<table>";
while ($lpost = mysql_fetch_array($post)) {
echo "<tr><td align='center' valign='middle' style='width:20%'><h2>".htmlentities($lpost['Name'])."</h2></td><td align='center' valign='middle' style='width:20%'><h3>".htmlentities($lpost['Wirkung4'])."</h3></td></tr>";
}
echo "</table>";