online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Uesch vom 28.01.2020, 17:52 Options

Ergebnisse von MySQL formatieren

Hallo allerseits. Habe eine Frage zu meinem Neugriechisch Lexikon. Und zwar: Wenn jemand nach einem Begriff sucht, soll in allen Ergebnissen, die gefunden werden, der Teil in Bold erscheinen, nach dem gesucht wurde. Wenn z.B. jemand nach "Haus" sucht, soll da kommen: Krankenhaus

Habe dazu folgendes:
$data['deutsch'] = str_replace($_GET['search'], "<b>".$_GET['search']."</b>", $data['deutsch']);


Problem dabei ist aber, dass er zwar dann Krankenhaus
anzeigt, aber das exakte Ergebnis, nämlich "Haus" wird nicht in Bold angezeigt. Liegt wohl an der Großschreibung.

Kann mir jemand helfen?

Grüße und Dank,

Üsch


Antwort schreiben

Antwort 1 von gresti vom 29.01.2020, 01:02 Options

Hi Üsch,

ich bin da der Meinung das du da noch was in deiner Table hinterlegen musst,
Ich würde da ne PHP Lösung anstreben,
SQL ist ja lediglich eine Datenbank.

lg gresti

Antwort 2 von katy vom 29.01.2020, 14:23 Options

Hallo Üsch,

da böte sich dann natürlich preg-replace an mit einem entsprechenden Suchmuster, das Groß/Kleinschreibung ignoriert.

katy

Antwort 3 von Uesch vom 29.01.2020, 15:20 Options

@gresti: Danke, aber was meinst du mit PHP-Lösung?

Gruß,

Üsch

Antwort 4 von katy vom 29.01.2020, 20:53 Options

@gresti und Üsch

verstehe ich euch nur falsch? Meiner Ansicht nach dreht es sich doch nur um PHP. MySQL hat mit dem beschriebenen Problem nichts zu tun, das ist doch lediglich PHP-Stringverarbeitung. Oder? Ich verstehe nämlich weder was grestis Antwort mit dem Problem zu tun hat (Table?) noch Üschs Nachfrage.

katy

Antwort 5 von Uesch vom 29.01.2020, 21:01 Options

Ja eben genau deshalb hab ich ja nachgefragt, weil das, was ich im ersten Beitrag geschrieben habe, ja PHP ist. MySQL hat nix mit dem Problem zu tun, es geht nur darum, wie man in PHP am besten den gesuchten Teil in Bold darstellen kann. Das mit dem preg_replace hab ich nicht ganz verstanden, kann mir da jemand ein Beispiel geben?

Antwort 6 von katy vom 30.01.2020, 06:05 Options

Hallo Üsch,

irgendwie beruhigt mich deine Antwort.
Ein Versuch wäre erst einmal folgendes:
$suchmuster = '/('.$_GET['search'].')/gi';
$ersetzungen = '<b>'.$1.'</b>';
$data['deutsch'] = preg_replace($suchmuster, $ersetzungen, $data['deutsch']);
ohne Garantie, da meine PHP-Kenntnisse noch mangelhaft sind.

Viel Erfolg

katy

Antwort 7 von katy vom 30.01.2020, 07:04 Options

hm, habe gerade noch ein wenig darüber gegrübelt, ich glaube Ersetzungen muss ein bisschen anders aussehen:
$ersetzungen = '<b>$1</b>
';
($1 ist das was im Suchmuster als zutreffend gefunden wird, dort besagen die Parameter gi dass alle Vorkommen des Ausdrucks unabhängig von Groß/Kleinschreibung ersetzt werden soll. Die / begrenzen ein Suchmuster, die () besagen, dass das was darin steht dem $1 entspricht.
Zumindest habe ich das so verstanden und ich hoffe, dass es stimmt und du meinen Ausführungen folgen kannst.

katy

Antwort 8 von Uesch vom 30.01.2020, 19:39 Options

Ah, ok, ich verstehe.
Ich werde es morgen mal ausprobieren und melde mich dann.

Vielen Dank,


Üsch

Antwort 9 von Uesch vom 31.01.2020, 14:29 Options

Da kommt:

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in index.php on line...


also in der Zeile
$data['deutsch'] = preg_replace($suchmuster, $ersetzungen, $data['deutsch']);


Was ist mit dem Modifier g gemeint?

Antwort 10 von katy vom 31.01.2020, 16:29 Options

Hallo Uesch,

g bedeutet "alle Vorkommen".
Aber vielleicht interpretiert preg_replace das so nicht (ist eigentlich PERL-Syntax), also lass das g mal weg.

katy

Antwort 11 von Uesch vom 31.01.2020, 19:23 Options

Absolut genial,

vielen Dank Katy!
Ohne das g klappt es wunderbar.


Schönen Gruß,

Üsch

Ähnliche Themen

Makro
Laurentiuz  07.05.2007 - 100 Hits -

Oracle SELECT Problem
dan_duesseldorf  29.11.2007 - 102 Hits - 1 Antwort

MySQL / ODBC unter Vista sehr langsam
alialialiali  21.02.2008 - 95 Hits -

Perl mit MySQL?
TByte  09.05.2008 - 73 Hits - 36 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026