Gå til innhold

Sideskift for x antall nyheter...


Anbefalte innlegg

Hei!

 

Jeg er egentlig veldig nybegynner med PHP jeg forstår så å si hvordan ting fungerer. Har en hjemmeside som dere ser i signaturen min som jeg bruker som eksperiment. Har fått gjort masse og ting begynner å fungere etterhvert. Selvom jeg sliter med enkle ting.

 

Spørsmålet mitt er; "Er det en smart funksjon i PHP som sorterer ut hver f.eks fjerde nyhet og så generere ny side." Regner med at det ikke er det. Regner jeg må sette opp en loop hvor den bryter for hver fjerde nyhet og genrerer en hvis kode. Men hvordan skal jeg da starte og hente opp resten på nesteside? :hmm:

 

Håper jeg ikke spør for vanskelig..

 

Kim

Lenke til kommentar
Videoannonse
Annonse

Det må da være fult mulig å gjøre det med PHP. Av det jeg har lest og studert så virker det på meg som om at det skal være fullt mulig. Når det gjelder å ta i bruk wordpress og cutenews er det uaktuelt.

 

Jeg skal lære meg PHP på et skikkelig måte og føler jeg ikke tar så mye lærdom av å bruke Cutenews eller Wordpress. Vitsen blir borte føler jeg.

 

Må vel være noe enkel kode som teller opp antall id's i databasen som er gyldig. Sortere dem i rett rekkefølge og publiser dem etter rekkefølge for så å dele dem opp i segmenter på f.eks 4 nyheter. Eller er jeg helt på bærtur?

 

Kim

Lenke til kommentar

$nyheterperside = 4;

$sidetall = mysql_real_escape_string( $_GET['sidetall'] );

if( $sidetall < 0 ) $sidetall = 0;

else

$sidetall--;

 

$sidetall = $sidetall * $nyheterperside;

 

mysql_query( "SELECT * FROM tabell LIMIT $sidetall,4" );

 

 

VELDIG basic kode, men hvis du skjonner litt.

 

$sidetall ma minkes med 1.og ganges med nyheterperside for a vikre med LIMIT

 

LIMIT "fra og med hviken rad", "antall rader returneres"

 

side 1, $sidetall blir 1 og reduseres med 1, for sa a ganges med 4 == 0

SQLen returnerer nyheter fra 0 - 4

 

side 2. $sidetall blir 2 og reduseres med 1, for sa a ganges med 4 == 4

SQLen returnerer nyheter fra 4 - 8

 

osv

 

:)

Endret av Ståle
Lenke til kommentar

Har sett på den video tutorialen. Jeg må si jeg ble litt imponert over han fyren der. Det gikk engentlig veldig fort for seg. Men alikevel så skjønte jeg alt det han gjorde og det virket så såre enkelt. Spørsmålet mitt er bare når kan jeg bli like flink.

 

Har ikke problemer med å forstå koder og hav som skjer. Men å lage mine egne skript er helt håpløst. Jeg får bookmarke den videoen der for den var litt genial. :blush:

 

Den videoen tok for seg alt det jeg tenkte på og det var slik jeg forsøkte å forklare btw.

 

Takker for svar.

 

Kim

Lenke til kommentar

Her er ett utdrag fra en av nyhetssidene jeg har lagd som deler opp nyhetene over flere sider, noe nedstrippet. Ikke spesielt kompleks, men kanskje ikke helt nybegynner vennlig ?

Klikk for å se/fjerne innholdet nedenfor

PHP

//totalt antall nyheter

$antnyh=mysql_fetch_row(

mysql_query("SELECT count(*) 

 FROM nyheter t1, utover t2

 WHERE vis_side = 'rm'

 ORDER BY DATE_FORMAT( dato, '%Y-%m-%d' ) DESC, t1.id DESC"));

 

//antall nyheter som skal vises pr side

$antside=5;

 

if (!isset($_GET['side'])) $_GET['side']=1;

if (isset($_GET['side']) AND is_numeric($_GET['side']) AND $_GET['side']>=2) 

$fra=($_GET['side']-1)*$antside;

else 

$fra=0;

 

//...

//utskrift av nyheter

//...

 

//sidedeling

echo "<div class="sidedeling">";

//echo $antnyh[0]."<br />";

echo "<span style="font-weight: bold; font-size: 14px;">Side: </span>";

echo "<span style="font-size: ";

if ($_GET['side']==1) echo "14px; font-weight: bold";

else echo "12px";

echo ";"><a href="index.php#bn">1</a></span>";

$sider=ceil($antnyh[0]/$antside);

if ($antnyh[0]>$antside)

{

$diffn=2; //differanse ned, hvor mange sider skal vises nedover fra aktiv side

$diffo=2; //differanse opp, hvor mange sider skal vises oppover fra aktiv side

 

if ($_GET['side']>=$diffn) 

{

$j=$_GET['side']-$diffn;

if ($j<3) $j=2;

}

else $j=2;

 

if ($_GET['side']>$diffn+2) echo "<span>...</span>";

 

if ($sider>2)

{

while ($j<=$_GET['side']+$diffo)

{

echo "<span style="font-size:";

if ($_GET['side']==$j) echo "14px; font-weight: bold";

else echo "12px";

echo ";"><a href="index.php?side=".$j."#bn">".$j."</a></span>";

if ($j+1==$sider) break;

else $j++;

}

if ($_GET['side']<$sider-$diffo-1) echo "<span>...</span>";

}

echo "<span style="font-size:";

if ($_GET['side']==$sider) echo "14px; font-weight: bold";

else echo "12px";

echo ";"><a href="index.php?side=".$sider."#bn">".$sider."</a></span>";

}

echo "</div>";

//sidedeling slutt

 

Den viser alltid link til side 1 og siste side, og 2 sider opp og ned i fra aktiv side. Hvis du står på f.eks side 5 av 10 vil det se slik ut 1 ... 3 4 5 6 7 ... 10.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...