Avatar billede persjensen Nybegynder
22. august 2004 - 16:50 Der er 9 kommentarer og
1 løsning

Ordbegrænsning i nyhedssystem

Hejsa..

Jeg sidder her og makker med mit nyhedssystem, som jeg gerne skal ha sat en ordbegrænsning på, således den kun viser fx. 100 ord af nyheden, og man så skal klikke på den for at læse det hele...

Nogle gode ideér ? :P

Mvh. Per S. Jensen
Avatar billede detox Nybegynder
22. august 2004 - 16:55 #1
Ligger dine nyheder i en database vil jeg foreslå du laver et udtræk med 100 ord fra hver nyhed med et link, indeholdende id på nyheden, til en side hvor du viser hele nyheden.
Avatar billede Slettet bruger
22. august 2004 - 16:57 #2
Du kan jo lade dig inspirere af det jeg selv bruger:

$sql = 'SELECT id, overskrift, aktiv_fra, aktiv_til, CONCAT(LEFT(tekst,100),SUBSTRING_INDEX(SUBSTRING(tekst,101)," ",1),IF(LENGTH(tekst)>100,"...","")) AS tekst FROM ' . $kundenavn . '_nyheder WHERE aktiv_fra <= NOW() AND aktiv_til >= NOW() ORDER BY aktiv_fra DESC LIMIT 3';

$query = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($query) != 0) {

while($row = mysql_fetch_array($query)) {
$aktiv_fra_dag = substr($row['aktiv_fra'], 8, 2);
$aktiv_fra_maaned = substr($row['aktiv_fra'], 5, 2);
$aktiv_fra_aar = substr($row['aktiv_fra'], 0, 4);
?>
<div style="color:#5C1515"><strong><? echo $row['overskrift']; ?></strong></div>
<div style="color:#5C1515"><? echo $aktiv_fra_dag . ":" . $aktiv_fra_maaned . ":" . $aktiv_fra_aar; ?></div>
<div><? echo $row['tekst']; ?></div>
<div style="padding-bottom:25px"><a href="index.php?pid=<? echo $link_til; ?>&nid=<? echo $row['id']; ?>">» læs hele nyheden</a></div>
<?
}
} else {
echo "ingen nyheder";
}
Avatar billede jammerlab Nybegynder
22. august 2004 - 16:57 #3
<?
$row[tekst] = "du er en meget lille homse gnu ja du er s†";
echo substr($row[tekst], 0, 20);
?>
Avatar billede detox Nybegynder
22. august 2004 - 17:09 #4
Hvis det er 100 ord du ønsker vil jeg foretrække denne version:

SELECT CONCAT(SUBSTRING_INDEX(tekst_felt, ' ', 200),
IF (LENGTH(tekst_felt) > LENGTH(SUBSTRING_INDEX(tekst_felt, ' ', 200)), '...', '')) AS kort FROM tabel
Avatar billede detox Nybegynder
22. august 2004 - 17:13 #5
Hov det var jo 200 ord ;o)
Avatar billede persjensen Nybegynder
22. august 2004 - 17:13 #6
Hmm... jeg har prøvet et par af de forskellige nu, men synes ikke helt jeg kan få det flettet ind i min kode, så det virker... :(

Koden ser ud som følg.
-----------------------------------------------------------------------------
<?
$foresp = mysql_query("SELECT dato, overskrift, besked, billede, nr FROM nyheder ORDER BY nr DESC LIMIT  $s, $prside");
if(!$foresp){
  //noget gik galt.
  die("Fejl ved SQL udførsel: ".mysql_error());
}

while($data = mysql_fetch_row($foresp)){


echo "<table border='1' bordercolor='#808080' style='border-collapse: collapse' width='540'><tr><td bgcolor='#CBCBCB'><font face='Verdana' style='font-size: 8pt' color='#666666'><a href='news_single.php?nr=$data[4]' target='indhold'><b>$data[1]</b></a></td></tr>";

echo "<tr><td bgcolor='#e9e9e9'><table><tr><td valign='top'><a href='news_single.php?nr=$data[4]' target='indhold'><img border='0' src='pics/$data[3]' width='80' height='80'></a></td>
<td valign='top'><font face='Verdana' style='font-size: 8pt' color='#666666'>$data[2]<br><br></font></td></tr></table></td></tr>";

echo "<tr><td bgcolor='#CBCBCB'><font face='Verdana' style='font-size: 8pt' color='#666666'>Posted the $data[0]</font></td></tr></table><br>";
}
?>
-----------------------------------------------------------------------------
Avatar billede detox Nybegynder
22. august 2004 - 17:17 #7
<?
$foresp = mysql_query("SELECT dato, overskrift, CONCAT(SUBSTRING_INDEX(besked, ' ', 100),
IF (LENGTH(tekst_felt) > LENGTH(SUBSTRING_INDEX(besked, ' ', 100)), '...', '')) AS kort, billede, nr FROM nyheder ORDER BY nr DESC LIMIT  $s, $prside");
if(!$foresp){
  //noget gik galt.
  die("Fejl ved SQL udførsel: ".mysql_error());
}

while($data = mysql_fetch_row($foresp)){


echo "<table border='1' bordercolor='#808080' style='border-collapse: collapse' width='540'><tr><td bgcolor='#CBCBCB'><font face='Verdana' style='font-size: 8pt' color='#666666'><a href='news_single.php?nr=$data[4]' target='indhold'><b>$data[1]</b></a></td></tr>";

echo "<tr><td bgcolor='#e9e9e9'><table><tr><td valign='top'><a href='news_single.php?nr=$data[4]' target='indhold'><img border='0' src='pics/$data[3]' width='80' height='80'></a></td>
<td valign='top'><font face='Verdana' style='font-size: 8pt' color='#666666'>$data[2]<br><br></font></td></tr></table></td></tr>";

echo "<tr><td bgcolor='#CBCBCB'><font face='Verdana' style='font-size: 8pt' color='#666666'>Posted the $data[0]</font></td></tr></table><br>";
}
?>

Så skal du bare trække et ID ud og tolføje et link.
Avatar billede persjensen Nybegynder
22. august 2004 - 17:20 #8
Super.. det fungerer perfekt... opretter du lige svar så du kan få dine points ;)
Avatar billede detox Nybegynder
22. august 2004 - 17:21 #9
Værsgo'
Avatar billede persjensen Nybegynder
22. august 2004 - 17:23 #10
takker ;)
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