17. april 2012 - 12:56Der 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 "<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>";
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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.
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.
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å 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.
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. :-)
Fik lavet om på designet, så nu passer det. men tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.