Hallo,

Ik ben bezig met mijn site (http://msnvet.ms.funpic.de/) en ik heb dus een soort van laatste 5 nieuwsberichten laten zien op me Home-pagina.

Het script daarvoor is:

<?
// Hoeveel nieuwsitems moeten er worden geshowd?
$aantal = "5";

// Laatste nieuwsitems worden geshowed, de layout kan nog worden aangepast

include("database.php");

mysql_connect("$host","$user","$pass");
mysql_select_db("$db");

$select="SELECT * FROM nieuws ORDER BY id DESC limit $aantal";
$query = mysql_query($select);

while ($list = mysql_fetch_object($query)) {
echo "<table cellspacing=\"0\" width=\"100%\"><tr><td background=\"images/nieuws-midden.PNG\">&nbsp;</td><td background=\"images/nieuws-midden.PNG\"><p>$list->datum ::<b>$list->titel </b> door $list->naam</td><td width=\"*\" background=\"images/nieuws-midden.PNG\"></tr></table>";
echo "$list->msg<br><br><a href=\"nieuws.php?id=$list->id\">Reageer</a>";
}
?>

(van dit nieuwssysteem: http://www.phphulp.nl/php/scripts/3/72/)

Nu wil ik alleen de eerste 100 woorden van het nieuwsbericht laten showen, en daarbij dan een link naar het nieuwsbericht.

Bij $list->msg wordt het bericht weergegeven (is anders dan nieuwssysteem zelf)

Weet iemand wat ik moet aanpassen om alleen de eerste 100 worden te laten zien?

Alvast bedankt =)
substr($tekst, 0, 100)
Werkt =) Bedankt =)
SanThe schreef op 31.08.2005 12:05
substr($tekst, 0, 100)
Dat zijn de eerste 100 tekens, niet de eerste 100 woorden.

<?php
$split = explode(" ",$rij->uit_de_DB);
for($i=0;$i<100;$i++) {
$break = $split[$i]." ";
}

echo $break."...";
?>

Elwin
Elwin (a.k.a. SpaceFrog) schreef op 31.08.2005 13:43
<?php
$split = explode(" ",$rij->uit_de_DB);
for($i=0;$i<100;$i++) {
$break = $split[$i]." ";
}

echo $break."...";
?>


Dit werkt vast niet. Hij onthoudt in de for() nu alleen de laatste. Je bedoelt $break .= $split[$i]." "; (met punt)
Het werkt niet echt, hij breekt inderdaad wel af na 100 woorden, maar zelfs met de oplossing van SanThe krijg ik het probleem dat hij bij alle nieuwsberichten het laatste nieuewsbericht plaatst..

Zie @ http://msnvet.ms.funpic.de/ wat ik bedoel...

Gr,
Stefan
(account @ phphulp wil nie meer echt werke na w8woord vergete iets :-S, dus maar ff zo reactie)
je moet dat script wel in die while-loop zetten ^^,
Jelmer schreef op 31.08.2005 21:02
je moet dat script wel in die while-loop zetten ^^,


Klopt.
En voor $split = ... moet je dit zetten:

$break = "";

Edit: Foutje.
hi, kan het ook niet zo:

echo implode(" ", array_slice(preg_split("/\s+/", $text), 0, $aantal));

in iig, zo heb ik altijd :)
@Jelmer: Had ik al ;-)
@SanThe: Het werkt =)

Bedankt =)
SanThe schreef op 31.08.2005 18:04
Dit werkt vast niet. Hij onthoudt in de for() nu alleen de laatste. Je bedoelt $break .= $split[$i]." "; (met punt)
Hehe.. :) Jup.. foutje.. :)

Elwin

Reageren