Problem mit Suche (Suchwort im Ergebnis farbig markieren)

Hallo,

ich habe eine Suche die in eine mySQL Datenbank alle Spalten nach einem festgelegten Suchbegriff ("sonstige") durchsucht und anschließen alle Datensätze in einer Tabelle ausgibt. Das funktioniert wunderbar (unten stehender Code), allerdings möchte ich das Suchwort ("sonstige") ind den ausgebenen Datensätzen jetzt noch rot einfärben und das bekomm ich nicht hin. Kann mir dabei jemand helfen?

Mfg Patrick


Code:
<html>
  <head>
    <title>Übersicht Regelzeichnungen</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="description" content="Übersicht Regelzeichnungen">
    <meta name="keywords" content="Übersicht Regelzeichnungen">
    <link rel="stylesheet" type="text/css" href="http://localhost/Regelzeichnungen/css/regelzeichnungen.css">
  </head>
    <body>
      <br>
      <?php
 
        error_reporting(E_ALL);

        include 'config.php';
        // Konfigurationsdatei laden

        if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
            die("Fehler: Es konnte keine Verbindung aufgebaut werden");
        }
       //   echo "Verbindung wurde aufgebaut<br />\n";

        if(!mysql_select_db(MYSQL_DATABASE)) {
            die("Fehler beim Zugriff auf Datenbank, Fehlermeldung: ".mysql_error());
        }
       //  echo "Die Datenbank wurde ausgewählt";

        // Hier kann man jetzt MySQL-Querys senden
  
        $suchen       = 'sonstige';   //suchkriterium
        $sql = "SELECT * FROM regelzeichnungen WHERE Lfd_Nr LIKE '%".$suchen."%' OR Kategorie LIKE '%".$suchen."%' OR Datum LIKE '%".$suchen."%' OR Ausg LIKE '%".$suchen."%' OR MHB LIKE '%".$suchen."%' OR Zeichnungs_Nr LIKE '%".$suchen."%' OR Inhalt_der_Regelzeichnung LIKE '%".$suchen."%' OR Blattz LIKE '%".$suchen."%' OR Format LIKE '%".$suchen."%' OR Digital_vorhanden LIKE '%".$suchen."%' ";   //hier hängts
        $adressen_query = mysql_query($sql) or die("Fehler: Anfrage nicht erfolgreich");
        $anzahl = mysql_num_rows($adressen_query);
        
        echo "Gefundene Datensätze: $anzahl";
      ?>  
      
      <br>
      <br>
      <table cellpadding="1" cellspacing="1" border="1" border-color="#000000" width="100%">
         <tr>
           <td>Lfd Nr.</td>
           <td>Kategorie</td>
           <td>Datum</td>
           <td>Ausg.</td>
           <td>MHB</td>
           <td>Zeichnungs Nr.</td>
           <td>Inhalt der Regelzeichnung</td>
           <td>Blattz.</td>
           <td>Format</td>
           <td>Digital vorhanden</td>
        </tr>
      <?php
        while ($adr = mysql_fetch_array($adressen_query)){ // ausgabe
      ?>
      
        <tr>
          <td><?=$adr['Lfd_Nr']?></td>
          <td><?=$adr['Kategorie']?></td>
          <td><?=$adr['Datum']?></td>
          <td><?=$adr['Ausg']?></td>
          <td><?=$adr['MHB']?></td>
          <td><?=$adr['Zeichnungs_Nr']?></td>
          <td><?=$adr['Inhalt_der_Regelzeichnung']?></td>
          <td><?=$adr['Blattz']?></td>
          <td><?=$adr['Format']?></td>
          <td><?=$adr['Digital_vorhanden']?></td>
        </tr>

      <?php
        }
      ?>

      </table>  
    </body>
</html>
 
Du könntest die Suchterme gleich in der Abfrage ersetzen, etwa:
Code:
SELECT
        REPLACE(`spalte`, 'foobar', '<span class="highlight">foobar</span>') AS `spalte_formatiert`
  FROM
        …
  WHERE
        `spalte` LIKE "%foobar%"
oder die Suchergebnisse nachher mit PHP verarbeiten, etwa:
PHP:
str_replace('foobar', '<span class="highlight">foobar</span>', $row['spalte'])
Ich kann dir allerdings nicht sagen, was effizienter ist. Ich tippe aber auf letzteres.
 
Ich hab das zweite mal probiert, aber entweder bin ich zu blöd das
richtig einzubinden oder es geht nicht (ich tipp auf zu blöd).

Kannst du mir zeigen wie das bei dem oben stehenden Code gehen würde?

ich habs so probiert:

Code:
<br>
      <br>
      <table cellpadding="1" cellspacing="1" border="1" border-color="#000000" width="100%">
         <tr>
           <td>Lfd Nr.</td>
           <td>Kategorie</td>
           <td>Datum</td>
           <td>Ausg.</td>
           <td>MHB</td>
           <td>Zeichnungs Nr.</td>
           <td>Inhalt der Regelzeichnung</td>
           <td>Blattz.</td>
           <td>Format</td>
           <td>Digital vorhanden</td>
        </tr>
      <?php
        while ($adr = mysql_fetch_array($adressen_query)){ // ausgabe
        str_replace('sonstige', "<span style= 'color:red; font-weight: bold'>'sonstige'</span>", $adr['Kategorie'])
      ?>
      
        <tr>
          <td><?=$adr['Lfd_Nr']?></td>
          <td><?=$adr['Kategorie']?></td>
          <td><?=$adr['Datum']?></td>
          <td><?=$adr['Ausg']?></td>
          <td><?=$adr['MHB']?></td>
          <td><?=$adr['Zeichnungs_Nr']?></td>
          <td><?=$adr['Inhalt_der_Regelzeichnung']?></td>
          <td><?=$adr['Blattz']?></td>
          <td><?=$adr['Format']?></td>
          <td><?=$adr['Digital_vorhanden']?></td>
        </tr>

      <?php
        }
      ?>
 
Zuletzt bearbeitet:
Zurück