28. maj 2004 - 23:32Der er
13 kommentarer og 1 løsning
Vise en del af teksten i databasen
Vi kender det allesammen. Vi søger f.eks. på google.dk og får et (eller som oftest mange) svar retur, hvor søgeordet er fremhævet med fed, og hvor kun en del af teksten vises i outputtet.
Hvordan gøres dette?
Indtil videre har jeg nemlig en del artikler i en mysql-database, og v.hj.a. en almindelig søgning kan jeg godt få udtrækket vist, og søgeordet markeret med fed.
Dette gør jeg v.hj.a. følgende:
($result = mysql_query("select * from artikler where tekst like '%$soeg%' order by dato ")) || die(mysql_error());
mit spørgsmål er nu: Hvordan kringler jeg det nu, så det ikke er HELE teksten der vises som output, men kun en del af den (naturligvis den del hvor søgeordet indgår). Det kan jo godt være at søgeordet står midt nede i teksten, og derfor skal tekstoutputtet i så fald vises med ...$data['tekst']... - men naturligvis skal vi kun have de tre prikker HVIS der udelades noget på den side af det viste hvor prikkerne står.
Jeg vil tro at det er noget i stil med følgende jeg skal bruge, men jeg kan ikke rigtigt få de to ting til at "snakke sammen"
Noget i stil med dette? <?php $text = <<<EOD Hvordan kringler jeg det nu, så det ikke er HELE teksten der vises som output, men kun en del af den (naturligvis den del hvor søgeordet indgår). Det kan jo godt være at søgeordet står midt nede i teksten, og derfor skal tekstoutputtet i så fald vises med ...... - men naturligvis skal vi kun have de tre prikker HVIS der udelades noget på den side af det viste hvor prikkerne står. EOD;
$term = 'nede'; // Hvad der søges efter $display = 20; // antal tegn der vises før/efter
Det er bare en anden måde at lave en string. Det er det samme som
$text = "Hvordan kringler jeg det nu, så det ikke er HELE teksten der vises som output, men kun en del af den (naturligvis den del hvor søgeordet indgår). Det kan jo godt være at søgeordet står midt nede i teksten, og derfor skal tekstoutputtet i så fald vises med ...... - men naturligvis skal vi kun have de tre prikker HVIS der udelades noget på den side af det viste hvor prikkerne står.";
Hvis du f.eks. søger på ordet "hvis", så vises det kun hvis jeg skriver det hele med store bogstaver (som det står i søgeteksten). Kan det mon ordnes, så søgningen ikke bliver case-sensitive?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.