Avatar billede bahne2000 Novice
18. maj 2003 - 01:32 Der er 11 kommentarer og
1 løsning

Er teksten for lang? så forkort og link...??

Hey!

Denne kode syns jeg virker totalt modsat...

<?    if ($artikellength > 380)
{  $tekst = substr("$data[2]", 0, 380);
echo "<p class=newsartikel>$tekst<br> ... <a class=newsheadlink href=/nyheder/index.php?id=$data[4]>=læs mere=</a></p>";
} else
{ echo "<p class=newsartikel>$data[2]</p>";}?>

jeg har testet på en tekst som er way over 380 og der smider den ikke "... læs mere " på... tværtimod hvis jeg laver ">" om til "<" så gør den...

nogen der kan være til hjælp her?
Avatar billede whatever Nybegynder
18. maj 2003 - 01:38 #1
Hvor får du denne $artikellength fra?

Jeg vil skyde på, at $artikellength ikke har en værdi. Derfor udskrives teksten ikke korrekt.

Eksempel:

hvis (0 > 380) så
  forkort tekst + indsæt link
ellers
  udskriv tekst

Hvis du så ændrer > til <, passer udtrykket jo lige pludselig, da 0 jo er mindre end 380.
Avatar billede schaefner Juniormester
18. maj 2003 - 01:40 #2
Prøv:

<?php
if (strlen($data[2]) > 380) {
    $tekst = substr($data[2],0,380);
    echo "<p class=newsartikel>$tekst<br> ... <a class=newsheadlink href=/nyheder/index.php?id=$data[4]>=læs mere=</a></p>";
} else {
    echo "<p class=newsartikel>$data[2]</p>";
}
?>
Avatar billede roenving Novice
18. maj 2003 - 01:42 #3
Der mangler en streng-indikator på dit link:

echo "<p class=newsartikel>$tekst<br> ... <a class=newsheadlink href='/nyheder/index.php?id=".$data[4]."'>=læs mere=</a></p>";
Avatar billede bahne2000 Novice
18. maj 2003 - 01:49 #4
artikellength er $artikellength=strlen($data[2]);  det er ik der fejlen ligger :o)  prøver lige de .  .  der  :o)
Avatar billede schaefner Juniormester
18. maj 2003 - 01:50 #5
bahne2000 >> Det vil være noget smartere at forkorte teksten i sql-kaldet.
Avatar billede bahne2000 Novice
18. maj 2003 - 01:50 #6
wait a minute... £data[4] er bare id til næste side så den ved hvilken nyheds row den skal vise
Avatar billede schaefner Juniormester
18. maj 2003 - 03:01 #7
Det er nogle lange minutter ;)
Avatar billede roenving Novice
18. maj 2003 - 03:05 #8
*gg*
Avatar billede bahne2000 Novice
18. maj 2003 - 11:00 #9
heh.... gik i seng *G*
Avatar billede bahne2000 Novice
18. maj 2003 - 11:45 #10
men.... men, så vidt jeg kan huske så er den første action i en IF sætning, det der sker hvis IF() er TRUE. Hvorfor bruger den så første action på < 380, når teksten er størrer end 380 ??
Avatar billede bahne2000 Novice
18. maj 2003 - 12:24 #11
NEVERMIND!! jeg fandt fejlen!! hehehehehehehe fjols mand... ok klokken var mange... Artikellength blev defineret så ledes  " $artikellength=strlen($data[2]);" og linjen lige bagefter ser sådan ud...
"While (£data=while($data=mysql_fetch_array($foresp))" .. så min IF ($artikellength < 380) vil altid være true ligemeget hvor meget tekst der er, fordi $artikellength er = 0 da $data[2] slet ikke eksisterer når jeg definerer $artikellength... flot .. hæhæ.. men tak for hjælpen gutter!!
Avatar billede bahne2000 Novice
18. maj 2003 - 12:27 #12
hele koden ser således ud, for dem som måske leder efter det samme.. :o)

<?
$foresp=mysql_query("SELECT dato, overskrift, artikel, navn, nr FROM moonlordsnews ORDER BY dato DESC LIMIT 0, 1");
$result = mysql_query("SELECT * FROM moonlordsnews");
$num_rows = mysql_num_rows($result);


while($data=mysql_fetch_array($foresp))
{
?>   
<table cellpadding="1" bgcolor="snow" cellspacing="0" width="450" border="0">
<tr bgcolor="#444">
<td width="15%"bgcolor="#444" ><? echo "<p class=newsdato align=left>";echo date("j/n Y", $data[0]);    echo "</p>";?></td>
<td bgcolor="#444" colspan="2" ><? echo "<p class=newsoverskrift align=right>$data[1] - </p>";?></td>
</tr>
<td colspan="3">
<?    $artikellength=strlen($data[2]);
if ($artikellength > 380)
{  $tekst = substr("$data[2]", 0, 380);
echo "<p class=newsartikel>$tekst<br> ... <a class=newsheadlink href=/nyheder/index.php?id=$data[4]>=læs mere=</a></p>";
} else
{ echo "<p class=newsartikel>$data[2]</p>";}?></td>
<tr><td height="10"></td></tr><tr>
<td colspan="2" ><?    echo "<p class=newsnavn>Skrevet af - $data[3]</p>";?> </td>

<td width="25%"><? echo "<a class=newsheadlink href=nyheder/ title=";?>"Klik her for at komme til oversigten over alle nyheder!"<?echo ">Antal Nyheder: $num_rows</a>";?></td>
</tr>
</table>
<?
}
?>

==================FIN.........
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