Suchergebnisse Fett ausgeben

forsterm

Erfahrenes Mitglied
Hallo,

mit folgendem Script

PHP:
<form method="POST" action="search.php">
<p><input type="text" name="begriff" size="20">
<select size="1" name="art">
<option value="Titel" selected>Titel</option>
<option value="Musik">Musik</option>
<option value="Text">Text</option>
</select><input type="submit" value="Suchen" name="Suchen"><br>
<input type="checkbox" name="genau" value="ON" id="1"><label for="1">Genau nach diesem Text suchen</label>
</form>
<?PHP 
if($Suchen == "Suchen"){
$dbhost = "localhost";
// MySQL - Host, meist ist es localhost
$dbpass = "xxx";
// MySQL - Passwort
$dbuser = "xxx";
// MySQL - Benutzer
$dbdata = "xxx";
// MySQL - Datenbankname
$dbtabelle = "xxx";
// MySQL - Datenbanktabelle
 
	@mysql_connect($dbhost, $dbuser, $dbpass); 
		// Auswahl der Datenbank 
	@$x=mysql_select_db($dbdata); 
		if (empty($x)) { 
		 echo "Fehler beim Verbinden mit dem Datenbankserver<br>"; 
		 exit; 
		} 
if (empty($begriff))
{
echo "Bitte geben Sie einen Suchbegriff ein!";
exit;
}
	 if($art == "Titel" and $genau == "ON")
{
$sql = "SELECT * FROM $dbtabelle WHERE Titel LIKE '$begriff'";
}
	 if($art == "Titel" and $genau == "")
{
$sql = "SELECT * FROM $dbtabelle WHERE Titel LIKE '%$begriff%'";
}
	 if($art == "Musik" and $genau == "ON")
{
$sql = "SELECT * FROM $dbtabelle WHERE Musik LIKE '$begriff'"; 
}
	 if($art == "Musik" and $genau == "")
{
$sql = "SELECT * FROM $dbtabelle WHERE Musik LIKE '%$begriff%'"; 
}
	 if($art == "Text" and $genau == "ON")
{
$sql = "SELECT * FROM $dbtabelle WHERE Text LIKE '$begriff'";
}
	 if($art == "Text" and $genau == "")
{
$sql = "SELECT * FROM $dbtabelle WHERE Text LIKE '%$begriff%'";
}
	$result = mysql_query($sql);	 
 
	if ($result) { 
		// Felder eines Datensatz in eine assoziatives Array füllen 
		// Tabellenfoermige Ausgabe 
echo "<table border=\"1\" width=\"100%\" style=\"border-collapse: collapse\" bordercolor=\"blue\" id=\"table1\">
<tr><td align=\"left\"><b><font color=\"#000000\" face=\"Arial\">Titel</font></b></td>
	 <td align=\"left\"><b><font color=\"#000000\" face=\"Arial\">Musik</font></b></td>
	 <td align=\"left\"><b><font color=\"#000000\" face=\"Arial\">Text</font></b></td></tr>";
			while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) { 
				 echo " <tr><font color=\"#000000\" face=\"Arial\"></font><td align=\"left\">",$ar["Titel"],
		   "</td><font color=\"#000000\" face=\"Arial\"></font><td align=\"left\">",$ar["Musik"],
					 "</td><font color=\"#000000\" face=\"Arial\"></font><td align=\"left\">",$ar["Text"],
					 "</td></tr>"; 
			}
echo "</TABLE>\n"; 
	} 
	else 
		echo "fehler<br>"; 
}
?>

Suche ich nach bestimmten Daten in einer MySQL Datenbank, nun möchte ich aber das der Suchbegriff bei der Ausgabe des Ergebnis Fett dargestellt wird, nur leider weiß ich nicht wie ich das anstellen soll.

Ps: Wie kann ich wenn nichts gefunden worden ist einfach nur "Es wurde nichts gefunden." ausgeben und zwar so das nur das Formular und "Es wurde nichts gefunden."
zusehen ist?
 
Für die "Es wurde nicht gefunden" Ausgabe:

PHP:
if(!mysql_num_rows($sql)) {
echo"Es wurde nichts gefunden";
}

Das mit dem hervorheben hab ich jetzt mal aus einem meiner Scripte genommen:

PHP:
if(!empty($highlight)) {
$to = "<span style=\"color: #990000;\">$highlight</span>"; 
$content = eregi_replace($highlight,$to,$content);
}

In $highlight steht das gesuchte Wort, das soll dann hervorgehoben werden. Der $content soll dann nach dem Wort durchsucht werden und durch $to ersetzt werden.
 
CrushLog hat gesagt.:
Für die "Es wurde nicht gefunden" Ausgabe:

PHP:
if(!mysql_num_rows($sql)) {
echo"Es wurde nichts gefunden";
}

Wenn ich das in mein Script einbaue bekomme ich folgende Fehlermeldung:

Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in search.php on line 81
 
Es müsste auch eigentlich so aussehen:
PHP:
if(!mysql_num_rows($result)) { 
echo"Es wurde nichts gefunden"; 
}
aber da du ja schon ...
PHP:
if($result) {
...
}
... dann müsste eigentlich folgendes gehen:
PHP:
if($result) {
...
}
else {
echo "nichts gefunden";
}
 
Zuletzt bearbeitet:
CrushLog hat gesagt.:
Für die "Das mit dem hervorheben hab ich jetzt mal aus einem meiner Scripte genommen:


PHP:
if(!empty($highlight)) {
$to = "<span style=\"color: #990000;\">$highlight</span>"; 
$content = eregi_replace($highlight,$to,$content);
}

Wie du das mit dem Hervorheben gemeint hast hab ich verstanden man könnte est z.B. so machen:

PHP:
<?PHP
$content = "abcdefgh";
if(!empty($highlight)) { 
$to = "<span style=\"color: #990000;\">$highlight</span>"; 
$content = eregi_replace($highlight,$to,$content); 
} 
echo $content;
?>

Nur leider weiß ich nicht so genau was ich bei meinem Script asl $content definieren muss!
 
Zuletzt bearbeitet:
Dein

PHP:
$ar["Titel"]

z.B.

mein $content kommt halt aus einem Forum, wo der $content halt dem eingegebenen Text entspricht, der bei mir so definiert ist:

PHP:
$content = nl2br($inhalt1[content]);

Bei dir wäre das dann:

PHP:
$content = $ar["Titel"];
if(!empty($highlight)) { 
$to = "<span style=\"color: #990000;\">$highlight</span>"; 
$content = eregi_replace($highlight,$to,$content); 
} 
echo $content;

Musst halt ein bisschen mit rumspielen, dann bekommst du das bestimmt hin :D
 
Hallo,



wie muss ich folgendes Script ändern, damit er beim Hervorheben Groß- und Kleinschreibung beachtet?

PHP:
<form method="POST" action="search.php">
 <p><input type="text" name="begriff" size="20">
 <select size="1" name="art">
 <option selected value="Alle">In allen Kategorien suchen</option>
 <option value="Titel">Titel</option>
 <option value="Musik">Musik</option>
 <option value="Text">Text</option>
 </select><input type="submit" value="Suchen" name="Suchen"><br>
 <input type="checkbox" name="genau" value="ON" id="1"><label for="1">Genau nach diesem Text suchen</label>
</form>
<?PHP 
if($Suchen == "Suchen"){
 $dbhost = "localhost";
 // MySQL - Host, meist ist es localhost
 $dbpass = "xxx";
 // MySQL - Passwort
 $dbuser = "xxx";
 // MySQL - Benutzer
 $dbdata = "xxx";
 // MySQL - Datenbankname
 $dbtabelle = "xxx";
 // MySQL - Datenbanktabelle
 
	@mysql_connect($dbhost, $dbuser, $dbpass); 
		// Auswahl der Datenbank 
	@$x=mysql_select_db($dbdata); 
		if (empty($x)) { 
		   echo "Fehler beim Verbinden mit dem Datenbankserver<br>"; 
		   exit; 
		} 
 if (empty($begriff))
 {
 echo "Bitte geben Sie einen Suchbegriff ein!";
 exit;
 }
	  if($art == "Alle" and $genau == "ON")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Titel LIKE '$begriff' or Musik LIKE '$begriff' or Text LIKE '$begriff'";
 }
	  if($art == "Alle" and $genau == "")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Titel LIKE '%$begriff%' or Musik LIKE '%$begriff%' or Text LIKE '%$begriff%'";
 }
	  if($art == "Titel" and $genau == "ON")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Titel LIKE '$begriff'";
 }
	  if($art == "Titel" and $genau == "")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Titel LIKE '%$begriff%'";
 }
	  if($art == "Musik" and $genau == "ON")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Musik LIKE '$begriff'"; 
 }
	  if($art == "Musik" and $genau == "")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Musik LIKE '%$begriff%'"; 
 }
	  if($art == "Text" and $genau == "ON")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Text LIKE '$begriff'";
 }
	  if($art == "Text" and $genau == "")
 {
 $sql = "SELECT * FROM $dbtabelle WHERE Text LIKE '%$begriff%'";
 }
	$result  =  mysql_query($sql);	   
 
	if ($result) { 
		// Felder eines Datensatz in eine assoziatives Array füllen 
		// Tabellenfoermige Ausgabe 
  echo "<table border=\"1\" width=\"100%\" style=\"border-collapse: collapse\" bordercolor=\"blue\" id=\"table1\">
  <tr><td align=\"left\"><b><font color=\"#000000\" face=\"Arial\">Titel</font></b></td>
	  <td align=\"left\"><b><font color=\"#000000\" face=\"Arial\">Musik</font></b></td>
	  <td align=\"left\"><b><font color=\"#000000\" face=\"Arial\">Text</font></b></td></tr>";
 while ($ds = mysql_fetch_object($result)) {
 $Titel = $ds->Titel;
 $Musik = $ds->Musik;
 $Text = $ds->Text;
   if($art == "Alle"){
	if(!empty($begriff)) { 
	$to = "<span style=\"color: #990000;\"><b>$begriff</b></span>"; 
	$Titel = eregi_replace($begriff,$to,$Titel); 
	$to = "<span style=\"color: #990000;\"><b>$begriff</b></span>"; 
	$Musik = eregi_replace($begriff,$to,$Musik);
	$to = "<span style=\"color: #990000;\"><b>$begriff</b></span>"; 
	$Text = eregi_replace($begriff,$to,$Text); 
	} 
   }
		if($art == "Titel"){
	if(!empty($begriff)) { 
	$to = "<span style=\"color: #990000;\"><b>$begriff</b></span>"; 
	$Titel = eregi_replace($begriff,$to,$Titel); 
	} 
   }
		if($art == "Musik"){
	if(!empty($begriff)) { 
	$to = "<span style=\"color: #990000;\"><b>$begriff</b></span>"; 
	$Musik = eregi_replace($begriff,$to,$Musik); 
	} 
   }
		if($art == "Text"){
	if(!empty($begriff)) { 
	$to = "<span style=\"color: #990000;\"><b>$begriff</b></span>"; 
	$Text = eregi_replace($begriff,$to,$Text); 
	} 
   }
				 echo " <tr><font color=\"#000000\" face=\"Arial\"></font><td>$Titel</td>
   <font color=\"#000000\" face=\"Arial\"></font><td>$Musik</td>
   <font color=\"#000000\" face=\"Arial\"></font><td>$Text</td>
   </tr>"; 
			}
  echo "</TABLE>\n"; 
	} 
	else 
		echo "fehler<br>"; 
}
?>
 
Zurück