Avatar billede yourstruly Nybegynder
06. december 2007 - 01:12 Der er 5 kommentarer og
1 løsning

Lange indlæg i nyheder vises kort med link

Jeg har lavet et simpelt site hvor der på forsiden skal være korte "teasere" til resten af teksten.

Når jeg laver koden til dette kan jeg ikke finde ud af hvor i koden dette skal stå og hvordan man får det vist...

Forstår i?

  <?php       
   
$max = 2; 
$db_shortlink = mysql_query("SELECT * FROM oplevelser LIMIT $max"); 

global $max; 
   
    while($data = mysql_fetch_array($db_shortlink)) {
echo "<P>". nl2br($data[1])."<a href='link_til_lange_nyhed.php'>Læs mere...</a>";
    }
   
   

   
   
    ?>
Avatar billede j4k0b Nybegynder
06. december 2007 - 05:55 #1
Prøv med:

function str_limit($str, $limit=50) {
    if(strlen($str) > $limit) {
        return substr($str, 0, $limit) . '...';
    }
    return $str;
}
Avatar billede yourstruly Nybegynder
06. december 2007 - 09:04 #2
hvor i koden skal den function ligge?

(er lidt ny i det her)
Avatar billede j4k0b Nybegynder
06. december 2007 - 09:18 #3
Funktionen forkorter en streng ned til $limit antal tegn.

F.eks.:

$string = 'Hej mig navn er John';
print str_limit($string, 10);  // giver 'Hej mig na...'
print str_limit($string, 500); // giver 'Hej mig navn er John'


Mit eksempel nedenfor skal du lige have tilrettet. Det henter de 10 nyeste artikler fra tabellen "Artikler" (sorteret efter  ArtikelID, som er et unikt ID hver artikel har fået tildelt da den blev oprettet). Feltet "Tekst" indeholder selve artiklen, og det er denne tekst som forkortes ned (i eksemplet til max. 50 tegn).


<?php

function str_limit($str, $limit=50) {
    if(strlen($str) > $limit) {
        return substr($str, 0, $limit) . '...';
    }
    return $str;
}   


/* Hent seneste 10 artikler */

$sql = "SELECT ArtikelID, Overskrift, Tekst FROM Artikler ORDER BY ArtikelID DESC LIMIT 10";
$res = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($res)) {
    print '<h1>'.$row['overskrift'].'</h1>';
    print '<p>'.str_limit($row['tekst'], 50).'</p>';
    print '<p><a href="artikel.php?artikelid='.$row['artikelid'].'">Læs hele artiklen</a><p>';
}

?>
Avatar billede terrak Nybegynder
06. december 2007 - 16:38 #4
Du kan også lave en ren SQL-løsning, som kunne se sådan ud:

$db_shortlink = mysql_query("SELECT id, overskrift, forfatter, concat(substring(nyhedstekst,1,20),' ...') as nyhedstekst FROM oplevelser LIMIT $max");

Husk at erstatte feltnavnene id, overskrift, forfatter og nyhedstekst med de feltnavne du har brugt. De 20 er hvor mange tegn du vil have med, i din bid af nyhedsteksten.
Avatar billede yourstruly Nybegynder
07. december 2007 - 00:14 #5
j4k0b-> Gider du smide et svar. Jeg har brugt din løsning og takker
Avatar billede yourstruly Nybegynder
28. april 2008 - 11:19 #6
blank
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester