Avatar billede Coffen Nybegynder
17. april 2012 - 12:56 Der er 11 kommentarer og
1 løsning

Læs mere funktion

Hej..

Kan man lave så i stedet for antallet af tegn, så antallet af linjerskift. f.eks 4 linjer, så kommer læs mere..

Her er koden!


<?php

include("incl/db.php");

/* Antallet af poster vi ønsker vist på hver side */
$pr_side = 3;

/* Vi tæller antallet af poster i tabellen husk at ændre ‘table' til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM nyhedtabel"),0) or die(mysql_error());

/* Hvis visfra-variablen ikke findes i URL-feltet og den ikke er et nummer og den er større end antallet i databasen, så sættes den til 0, ellers sættes den til værdien fra URL feltet */
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

   
  $query  = mysql_query("SELECT * FROM nyhedtabel ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
  while($row = mysql_fetch_array($query))
  {
  $id = $row['id'];
  $overskrift = $row['overskrift'];
  $dato = $row['dato'];
  $rest = nl2br( substr( $row["tekst"], 0, 300 ) ) . "...<br />" ;

echo "
<h3>$overskrift -<g> $dato</g></h1><br>
$rest<a href=\"java script:popUp('nyt.php?id=$id')\"><span>Læs mere</span></a><br />


";

  }
echo "<br>";
/* Der undersøges om der skal udskrives et "forrige side"-link, er dette tilfældet udskrives linket */
if ($vis_fra > 0) {
    $back= $vis_fra - $pr_side;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$back' class='nyhed'>Forrige</a> ";
}
$page = 1;
/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
    if($vis_fra != $page * $pr_side - $pr_side) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start' class='nyhed'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}

/* Der undersøges om der skal udskrives et "næste side"-link, er dette tilfældet udskrives linket */
if ($vis_fra < $antal - $pr_side) {
    $next = $vis_fra + $pr_side;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$next' class='nyhed'>Næste</a>";

}

?>
Avatar billede inteeeL Nybegynder
17. april 2012 - 13:10 #1
Svarer 300 tegn ikke til ca. 4 linjer i dit system da? Svaret er ja og nej. Hvis du definerer en linje således, at det svarer en sætning efterfulgt af et linjeskift (\n) kan du vel blot explode ud fra "\n" og hente de 4 første elementer. Det samme kan du, hvis de er separeret med <br>. En anden måde kan være, at du henter de 4 første sætninger ved at separere dem via punktummet. explode('.', $row["tekst"]) og så tage de 4 første elementer.

Jeg kan dog ikke se, hvorfor det er en fordelagtig løsning at hente linjerne frem for blot at hente et x antal tegn.
Avatar billede Coffen Nybegynder
17. april 2012 - 13:24 #2
Jeg er begrænset af designet på siden og mine evner.. :)

Jeg har en nyhedsspalte på siden med en højde på 425px
Hvor jeg vil have de 3 seneste nyheder ind, med ovenskiften og tekst.

og det passer med de 4 linjer..
Avatar billede inteeeL Nybegynder
17. april 2012 - 13:40 #3
Kan du ikke bare skrive 4 linjer, så det passer til designet, og derefter finde ud af, hvor mange tegn, det svarer til? Og så erstatte 300 med det nye antal.
Avatar billede Coffen Nybegynder
17. april 2012 - 13:56 #4
Det er desværre ikke altid mig der skal tilføje nyheder..

f.eks. så passer det her meget godt


Vi har i den sidste stykke tid arbejdet hårdt på at gøre vores hjemmeside mere attraktiv.
Nyt på siden er vores profil - hvor man kan læse lidt om hvem vi er. Nyheder som løbene bliver opdateret med det nyeste nyt fra os. Uden aktiviteter kan man ser hvad vi laver lige for tiden, der... læs mere

Men det går galt hvis det står sådanne her.

Vi har i den sidste stykke tid arbejdet hårdt på at gøre vores hjemmeside mere attraktiv.

Nyt på siden er vores profil - hvor man kan læse lidt om hvem vi er. Nyheder som løbene bliver opdateret med det nyeste nyt fra os. Uden aktiviteter kan man ser hvad vi laver lige for tiden, der... læs mere

Så giver det en linjer for meget..
Avatar billede olebole Juniormester
17. april 2012 - 15:16 #5
<ole>

Så er der ikke nogen løsning på problemet. PHP har ingen mulighed for at tælle, hvormange linjer/tegn dit design tillader.

Hvis designet virkelig kun tillader, der præcist står fire linjer, tillader designet ikke denne form for funktionalitet. Er funktionaliteten et krav, må du skifte designet.

/mvh
</bole>
Avatar billede inteeeL Nybegynder
17. april 2012 - 18:27 #6
Helt enig med det, Ole siger. Den eneste løsning på at tilpasse teksten helt nøjagtigt til design, er ved at tage et medtage et x antal tegn.
Avatar billede olebole Juniormester
17. april 2012 - 18:41 #7
#6: og det endda kun, hvis skriften er monospaced. Under alle andre omstændigheder er der stor forskel på bredden af 50 M'er og 50 I'er  *o)

Generelt kan man sige, at et fleksibelt design/layout er et godt design. Et ufleksibelt er det modsatte
Avatar billede inteeeL Nybegynder
17. april 2012 - 18:48 #8
Helt bestemt. Et tiltag kunne dog være, at man efterlod lidt tomrum tilsidst; såfremt der skulle forekomme for mange M'er, ville dette ikke have en for stor betydning bagerst, da dette blot ville fylde tomrummet ud. Men igen, hvis der kun er l'er, vil der være for lidt tekst. Altså må det helt rigtige svar være, som du også nævner, et fleksibelt design. :-)
Avatar billede olebole Juniormester
17. april 2012 - 19:29 #9
Arrrh ... kom nu! Så er vi jo enige! Det kan du da ikke mene  *D
Avatar billede inteeeL Nybegynder
17. april 2012 - 20:23 #10
Vi er enige! Hehe, er det usandsynligt da? Det er en sjældenhed, at jeg er helt uenig i dine udtalelse, Ole. :-)
Avatar billede olebole Juniormester
17. april 2012 - 20:34 #11
I know ... just joking  *o)
Avatar billede Coffen Nybegynder
02. maj 2012 - 09:41 #12
Fik lavet om på designet, så nu passer det.
men tak for hjælpen
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