Gå til innhold

Neste side opplegg


Anbefalte innlegg

Videoannonse
Annonse
Jeg kan sette på LIMIT men da kommer ikke ale innleggene med vettu. Men er ikke sikker på hvordan jeg skal få til det med å få f.eks ?rang=2 så viser den resten av innleggende der liksom.

 

Dårlig til å forklare jeg :p

Med limit: "SELECT col FROM table WHERE id >= start LIMIT 20;"

Uten limit: "SELECT col FROM table WHERE id >= start AND id <= stop;"

 

Edit: Dersom du har start på f.eks 20, og har slettet id 25, så vil limit gi deg 20 svar, men den andre vil kun gi deg 19 :) LIMIT er tingen!

Endret av pulse
Lenke til kommentar
Med limit: "SELECT col FROM table WHERE id >= start LIMIT 20;"

 

denne er heller ikke optimal ettersom den starter ved id. id trenger ikke være kronologiske tall.

 

måten å gjøre det på:

 

SELECT col FROM table LIMIT start, 20;

 

red:

 

skal du ha med total antall rader kan du gjøre:

 

SELECT col, COUNT(id) FROM table GROUP BY id LIMIT start,20;

red: denne er ubrukelig. count teller kun de resulterte radene.

 

(praktisk når du har pagination, for å kunne lage linker til alle sidene.)

Endret av grimjoey
Lenke til kommentar

Jeg skrev litt feil i forrige innlegg. for å få tak i total antall rader har man et par muligheter:

 

SELECT SQL_CONT_FOUND_ROWS col FROM table LIMIT start, 20;
SELECT FOUND_ROWS();

 

SELECT col, (SELECT COUNT(*) FROM table) FROM table LIMIT start, 20;

 

SELECT col FROM table LIMIT start, 20;
SELECT COUNT(*) FROM table;

 

Det finnes sikkert flere. Jeg ville gått for nr. 1 eller 3.

Lenke til kommentar
  • 2 uker senere...

Klikk for å se/fjerne innholdet nedenfor

<?php

if ((isset($_GET['start'])) AND (is_int($_GET['start'])))

$start = $_GET['start'];

else

$start = 0;

$query = "SELECT title, navn, data, nyhet FROM news ORDER BY id LIMIT $start, 20;";

$result = mysql_fetch_array($query);

foreach ($result AS $key => $value)

{

// Print ut det du vil ha, som du vil ha det.

}

$key = $key + 1;

echo 'Neste side: <a href="siden.php?start='.$key.'">Neste</a>';

?>

Usj, skjulte den jeg, den er dårlig, men er kanskje ett skritt i riktig retning (ikke testet).

Endret av pulse
Lenke til kommentar

Ok, jeg har fått scripte til å funke:

if (isset($_GET['id'])) {
$start = $_GET['id'];
} else {
$start = 0;
}
$query = mysql_query("SELECT navn, innlegg FROM gu ORDER BY id DESC LIMIT ".$start.", 20;");
$result = mysql_fetch_array($query);
foreach ($result AS $key => $value) {
$screen = '';

while ($fetch = mysql_fetch_object($query)) {
	$screen .= '<div class="block">';
$screen .= ''.nl2br($fetch->innlegg).'<br>';
$screen .= '<i>Av:' . $fetch->navn . '</i>';
	$screen .= '</div><br>';
}

echo $screen;
}
$key = $key + 1;

echo 'Neste side: <a href="?side=gjestebok&id='.$key.'">Neste</a>';

Men det funker ikke helt som det skal, det er litt vanskelig å forklare hva som er feil. Men vis noen

erfarende ser en feil så bare rooop ut ;)

 

EDIT:

Dere kan teste på http://danandweb.net/index.php?side=gjestebok ..

Endret av dannyboy_1992_
Lenke til kommentar
$query = mysql_query("SELECT navn, innlegg FROM gu ORDER BY id DESC LIMIT ".$start.", 20;");

ah, DESC i spørringa gjør $key = $key + 1; blir feil. (fjern denne).

 

Inne i foreachen (f.eks etter screen = '';) legger du inn to nye linjer som følger:

if (!isset($next))

$next = $key;

 

Og så bytter du ut '.$key.' med '.$next.' i linken helt til slutt :)

Endret av pulse
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...