Olaf: Suchfunktion, Ergbis mit Spaltenname anzeigen

Hallo zusammen,

einfache Frage:
Ich suche in einer MySQL Tabelle mit mehreren Spalten über den LIKE Befehl nach einem Begriff, oder einer Zahlenfolge. Alle Ergebnisse werden korrekt angezeigt. Wie erreiche ich nun, das mir zu dem gezeigten Datensatz der Spaltenname angezeigt wird, in der mein Begriff gefunden wurde?

Danke schonmal im Vorraus,
Gruß
Olaf.

Meine Suchabfrage:

$SQLAbfrage = "select * from tst_kunden where kd_name like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     or kd_nummer like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     or kd_uid like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     or kd_strasse like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     or kd_plz like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     or kd_ort like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     or kd_geraettyp like '%" . $_POST["s_text"] . "%' AND kd_status = 'activated'
     ";
     $Ergebnis = mysql_query($SQLAbfrage, $iVerbNr) or die ( "<H2>Will nicht suchen: </H2><P>". $SQLAbfrage . "</P>" . mysql_error());
     $nAnzZeilen = mysql_num_rows($Ergebnis);
     if ( $nAnzZeilen > 0 ) {
     for ( $i = 0; $i < $nAnzZeilen; ++ $i ) {
     $aDaten = mysql_fetch_array( $Ergebnis );
      if ($bgc == 1) {
       $bgcolor = "E5E5E5";
       $bgc = 0;
      }
      else {
       $bgcolor = "white";
       $bgc = 1;
      }
      echo'
      <tr bgcolor="'.$bgcolor.'">
       <td width="70" height="35">&nbsp;' . $aDaten["kd_typ"] . '</td>';
       if(strlen($aDaten["kd_firma"]) <= 18) {
        echo'<td width="80">' . $aDaten["kd_firma"] . '</td>';
       }
       else {
        echo'<td width="80" valign="">' . substr($aDaten["kd_firma"], 0, 18) . '...</td>';
       }
       echo'
       <td width="120">' . $aDaten["kd_nummer"] . '</td>';

.... Vor dem der Ausgabe (' . $aDaten["kd_firma"] . ') soll nun der spaltenname angezeigt werden.

  1. Hi,

    einfache Frage:

    Abwarten.

    Ich suche in einer MySQL Tabelle mit mehreren Spalten über den LIKE Befehl nach einem Begriff, oder einer Zahlenfolge. Alle Ergebnisse werden korrekt angezeigt. Wie erreiche ich nun, das mir zu dem gezeigten Datensatz der Spaltenname angezeigt wird, in der mein Begriff gefunden wurde?

    Wenn du die Inhalte aller Spalten ebenfalls mit ausliest, koenntest du anschliessend bei der Ausgabe Scriptseitig ueberpruefen, ob der Suchstring im Wert von Spalte XY drinsteht. Aber das ist natuerlich nicht sonderlich performant oder clever ...

    Du koenntest bspw. auf IF() in deinem SELECT-Statement nutzen, und dir damit einen Wert "generieren" lassen, ob der Wert in Spalte XY gefunden wurde oder nicht.
    Ob du dir fuer jede Spalte damit eine zusaetzliche "Spalte" im Ergebnis generieren laesst, oder das fuer alle Spalten in einem "sammelst" (mit CONCAT o.ae.), waere noch zu ueberlegen.

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."