Gå til innhold

Resten av en tekst på neste side [LØST]


Anbefalte innlegg

Jeg driver med et artikkel script og har lyst til å ha det slik at hvis selve artiklen er over x antall tegn så kommer det en neste side og der henter den ut resten av artiklen.

 

Jeg bruker MySQL til å lagre artiklene og er litt usikker på hvordan jeg skal lage dette. Er det noen her som har lagd dette selv før eller vet hvordan man gjør det som kunne gitt meg en liten innføring?

 

MVH: Adrian Emile

 

PS: Si ifra hvis dere ikke skjønte innlegget!

 

Postet det her siden det må egentlig ikke ha noe med databaser å gjøre.

Endret av ThaMezzy
Lenke til kommentar
Videoannonse
Annonse

Eneste jeg kom på nå:

Her er koden for de første n tegn:

$n = 1337; //Max antall tegn det er tillatt å ha per side
if (strlen($string) > $n {
$first = substr($string, 0, 1337);
$second = substr($string, 1337, 1337);
}

Endret av drange_net
Lenke til kommentar

Kanskje ha to columns i mysql hvor du har $first og $second i. Så lager du en enkel liten if statement som viser resten av artikkelen hvis $_GET['action'] == 'full'. For eksempel:

if ($_GET['action'] == 'full') {
$query = "SELECT second, additionalcols FROM mysqltable WHERE id = $id";
$result = mysql_query($query); // gjør query
$row = mysql_fetch_assoc($result);
// stripslashes osv.
echo $row['message'];
echo $row['additionalcols'];
echo '<a href="'.$_SERVER['PHP_SELF'].'">Tilbake</a>';
}
else {
$query = "SELECT first, additionalcols FROM mysqltable WHERE id = $id";
$result = mysql_query($query); // gjør query
$row = mysql_fetch_assoc($result);
// stripslashes osv.
echo $row['message'];
echo $row['additionalcols'];
echo '<a href="?action=full">Full historie</a>';
}

Veldig simpel kode, usikker på om jeg har glemt noe.

Lenke til kommentar

Var en god ide det Me sjøl, men tenkte bare jeg skulle spørre om dere tror dette funker:

 

<?php

// Tilkobling her

// Query her

// Her sjekker den hvilken side den er på

if($_GET['side'] == "1") {

$side = substr($artikkel, 0, 1500);
}
elseif($_GET['side'] == "2") {

$side = substr($artikkel, 1500, 3000);
}
elseif($_GET['side'] == "3") {

$side = substr($artikkel, 3000, 4500);
}

echo $side;

// Max antall tegn det er tillatt å ha per side

$tegn = 1500; 

// Hvis den er over så kommer det en link

if(strlen($artikkel) > $tegn {

echo "<a href='?inc=(link)&side=1'>Neste</a>";

}
else
{
echo "";
}

?>

 

Må selvfølgelig bygge denne opp, men det er nok noen her som skjønner prinsippet. Funker denne tror dere? Har ikke noe sted å teste scriptet på så må nesten spørre dere om dere tror denne funker.

Endret av ThaMezzy
Lenke til kommentar

Jeg tror nok jeg ville skilt på ord istedetfor tegn, slik at ikke en del av ordet blir på side en, og andre del av ordet på side to.

Et aldri så lite eksempel på teorien

//databsekobling, spørrinng, osv
// $text = teksten fra mysql...
$ord_pr_side = 100;
if(!isset($_GET["side"])) $side = 0;
else $side = $_GET["side"]
$start = $side*$ord_pr_side;
$slutt = $start + $ord_pr_side;
$ant_ord = str_word_count($text);
if($slutt > $ant_ord) $slutt = $ant_ord;
$ant_sider = ceil($ant_ord / $ord_pr_side);
$ord = str_word_count($text, 2);
for($i=$start;$i<$slutt;$i++) {
print $ord[$i]." ";
}
if($ant_sider > 1) {
$nesteside = $side+1;
print "<a href='?side=$nesteside'>neste side</a>";
}

 

Ikke helt 100, men omtrent noe sånt, kanskje ? Ikke testet, da...

 

Du bør lese litt om str_word_count på php.net

er usikker på om den tar med æøå. Den teller ihvertfall ikke med tall. Dette må legges til i et tredje argument. Se eksempel på php.net

Lenke til kommentar

kakkle: Altså jeg så på koden din, men har fått litt hjelp her og der og lagd litt selv.

Denne koden under her funker helt fint. Har ikke kommentert koden nå siden den brukes kun for tiden i scriptet mitt, men hvis noen har lyst til å bruke den og ikke skjønner alt så er det bare å sende pm til meg.

 


<?php

// All det database greiene

$tegn = 200;

$offset = isset($_GET['side']) && is_numeric($_GET['side']) && ($_GET['side']*$tegn)<strlen($si[omtale]) ? $_GET['side']*$tegn : 0;

if ($offset > 1) {
$side = ($offset/$tegn)-1;
echo "<a href=\"?inc=omtaler&action=les&id=$si[id]&side={$side}\"><<Forrige</a> ";
}
else
{
echo "<<Forrige ";
}

echo "<div align='center'>"; 

if(!isset($_GET['side'])) {
   $side = 1;
}
elseif($_GET['side'] == 0) {
   $side = 1;    
} else {
   $side = $_GET['side'];
}

if($side > 1){

$forrige = ($side - 1);

echo "<a href='?inc=omtaler&action=les&id=$si[id]&side={$forrige}'><<Forrige</a> ";
}
else
{
echo "<<Forrige ";
} 

$total = strlen($si[omtale]);

$antsider = ceil($total / $tegn);

for($i = 1; $i <= $antsider; $i++){

   if(($side) == $i){
       echo "<strong>$i</strong> ";
       } else {
           echo "<strong><a href=\"?inc=omtaler&action=les&id=$si[id]&side=$i\">$i</a></strong> ";
   }
}

if($side < $antsider){
$neste = ($side + 1);

echo "<a href='?inc=omtaler&action=les&id=$si[id]&side={$side}'>Neste>></a>";
}
else
{
echo "Neste>>";
} 
echo "</div>";

?>


Endret av ThaMezzy
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...