Gå til innhold

Ny side om mer enn x-antall emner?


Anbefalte innlegg

Hei.

 

Holder på å lage et forum, men er ikke sikker på hvordan jeg kan få det til å vise maks 10 emner/poster per side og så få den til å lage en link til de 10 neste. Noen som kan forklare kort hvordan det kan gjøres?

 

Takker for svar :)

Endret av Jokkeman
Lenke til kommentar
Videoannonse
Annonse

Det er egentlig ikke så vanskelig, kan gi deg en eks. kode:

if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$start = $_GET['id'];
} else {
$start = 0;
}

$query = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT ".$start.", 10;");

while ($fetch = mysql_fetch_object($query)) {
echo("SKRIVE UT!");
}

$idp = $start + 10;
$idm = $_GET['id'] - 10;

echo("<a href=?side=gjestebok&id=".$idp.">Neste side</a> | <a href=?side=gjestebok&id=".$idm.">Tilbake</a>");

Der viser den de 10 første, vis du tryker neste så blir det enda 10 neste osv..

Endret av dannyboy_1992_
Lenke til kommentar

Da har jeg prøvd meg litt fram, men det ser ikke ut som om det funker helt.

 

Jeg har et forum med 12 tråder, men nå viser den bare 5. På forum med 3 tråder, viser den 2, og under det viser den ingenting.

 

<?php
elseif ($oppgave == "visforum"){
	$id = $_GET['id'];
	if (!isset($_GET['side'])){
		$side = '1';
		}
	else {
		$side = $_GET['side'];
		}

	$rows	= 10;
	$minst 	= $side * $rows;
	$maks 	= $minst + $rows;

			$hent 		= mysql_query("SELECT * FROM Melding WHERE KategoriID = '$id' ORDER BY Dato DESC LIMIT ".$minst.", ".$rows.";");
			$henthk 	= mysql_query("SELECT * FROM Underkat WHERE ID = '$id'");
			$henthka 	= mysql_fetch_array($henthk);
			echo "<table>";
			echo "<tr><td colspan='2'>Du er her: <a href='forum.php'>Hovedside</a> -> " . $henthka['Katnavn'] . "</td><td><a href='forum.php?action=addtopic&id=" . $id . "' style=' float: right;'>Nytt emne</a></td></tr>";
			echo "<tr><td id='hovedkat'><b>" . $henthka['Katnavn'] . "</b></td><td  id='hovedkata'><b>Antall svar</b></td><td  id='hovedkatb'><b>Av</b></td></tr>";

			while ($henta = mysql_fetch_array($hent)) {
				$svar 			= mysql_query("SELECT * FROM Melding WHERE ID ='" . $henta['ID'] . "'");
				$svara 			= mysql_fetch_array($svar);
				$antsvar 		= $svara['SvarID'];
				if (strlen($henta['ID']) > 1){
					$hentantsvar 	= mysql_query("SELECT * FROM Melding WHERE SvarID = '$antsvar'");
					$hentantsvara 	= mysql_fetch_array($hentantsvar);
					$antsvar2 		= mysql_num_rows($hentantsvar);
					$hentbrukernavn = $henta['BrukerID'];
					$hentbruker		= mysql_query("SELECT * FROM users WHERE Id = '$hentbrukernavn'");
					$hentbrukera	= mysql_fetch_array($hentbruker);
					echo "<tr><td id='underkat'><a href='forum.php?action=vistopic&id=" . $id . "&topid=" . $henta['ID'] . "'>" . $henta['Overskrift'] . "</a></td>
						  <td id='underkata'>" . $antsvar2 . "</td><td id='underkatb'><a href='forum.php?action=profil&id=" . $henta['BrukerID'] . "'>" . $hentbrukera['Username'] . "</a></td></tr>";
				}
			}
		echo "</table>";
		$antalla	= mysql_num_rows($hent);
		$antallb	= ceil($antalla/$rows);
		$antall		= $antallb;
		$neste 		= $side + 1;
		$forrige	= $side - 1;
		if ($antall == '0'){
			echo "<small>Forrige (side 1 av 1) Neste</small>";
			}
		else {
			if ($side == '1'){
				echo "<small>Forrige (side 1 av " . $antall . ") <a href='forum.php?action=visforum&id=" . $side . "&side=" . $neste . "'>Neste</a></small>";
				}
			elseif ($side = $antall){
				echo "<small><a href='forum.php?action=visforum&id=" . $id . "&side=" . $forrige . "'>Forrige</a>(side " . $side . " av " . $antall . ") Neste</small>";
				}
			else {
				echo "<small><a href='forum.php?action=visforum&id=" . $id . "&side=" . $forrige . "'>Forrige</a>(side " . $side . " av " . $antall . ") <a href='forum.php?action=visforum&id=" . $_GET['id'] . "&side=" . $neste . "'>Neste</a></small>";
				}
		}

	mysql_close($con);
	}
?>

 

$id er forumets ID.

 

Det forumet med 12 tråder "vet" at det er flere enn 10 tråder, så jeg kan trykke neste, men når jeg trykker neste, blir ID'en til forumet '1'....

 

Ser ikke feilen jeg har gjort her :p

Lenke til kommentar

Hallois :)

 

Skrev ett forum selv for noen månder siden, og bør vel starte med og fortelle deg at et forum er et vanskelig prosjekt for en nybegynner :) Men hvis du ikke regner med og få noe særlig trafikk på siden er det jo ett kjempebra lære-prosjekt!

 

Vanskelig og finne feil uten syntax-highligthning.. men kan jo starte med at du setter

if (!isset($_GET['side'])){

$side = '1';

}

else {

$side = $_GET['side'];

}

 

$rows = 10;

$minst = $side * $rows;

 

$minst blir da 10, enig?

 

så mysql_query'en din starter med og vise fra post 10-20.

 

for og øke en variabel med en kan du skrive $variabel++;

og for og minske kan du skrive $variabel--;

 

Lykke til, skal se innom topicen din seinere hvis du skulle trenge noe mere hjelp :)

Lenke til kommentar

Nå ser det ut som om det meste funker, utenom at det ikke tar men den siste tråden :p så nå viser den 10 på ene siden, og 1 på andre siden istedet for 2 :p

elseif ($oppgave == "visforum"){
	$id = $_GET['id'];
	if (!isset($_GET['side'])){
		$side = '1';
		}
	else {
		$side = $_GET['side'];
		}

	$rows	= '10';

	if ($side == '1'){
		$minst 	= $side;
		}
	else {
		$minst 	= $side * $rows - $rows + 1;
		}
	$hent 		= mysql_query("SELECT * FROM Melding WHERE KategoriID ='$id' AND ID > '1' ORDER BY Dato DESC LIMIT ".$minst.", ".$rows."");
	$henthk 	= mysql_query("SELECT * FROM Underkat WHERE ID = '$id'");
	$henthka 	= mysql_fetch_array($henthk);
	echo "<table>";
	echo "<tr><td colspan='2'>Du er her: <a href='forum.php'>Hovedside</a> -> " . $henthka['Katnavn'] . "</td><td><a href='forum.php?action=addtopic&id=" . $id . "' style=' float: right;'>Nytt emne</a></td></tr>";
	echo "<tr><td id='hovedkat'><b>" . $henthka['Katnavn'] . "</b></td><td  id='hovedkata'><b>Antall svar</b></td><td  id='hovedkatb'><b>Av</b></td></tr>";

	while ($henta = mysql_fetch_array($hent)) {
		$svar 			= mysql_query("SELECT * FROM Melding WHERE ID ='" . $henta['ID'] . "'");
		$svara 			= mysql_fetch_array($svar);
		$antsvar 		= $svara['SvarID'];
		if (strlen($henta['ID']) > 1){
			$hentantsvar 	= mysql_query("SELECT * FROM Melding WHERE SvarID = '$antsvar'");
			$hentantsvara 	= mysql_fetch_array($hentantsvar);
			$antsvar2 		= mysql_num_rows($hentantsvar);
			$hentbrukernavn = $henta['BrukerID'];
			$hentbruker		= mysql_query("SELECT * FROM users WHERE Id = '$hentbrukernavn'");
			$hentbrukera	= mysql_fetch_array($hentbruker);
			echo "<tr><td id='underkat'><a href='forum.php?action=vistopic&id=" . $id . "&topid=" . $henta['ID'] . "'>" . $henta['Overskrift'] . "</a></td>
				  <td id='underkata'>" . $antsvar2 . "</td><td id='underkatb'><a href='forum.php?action=profil&id=" . $henta['BrukerID'] . "'>" . $hentbrukera['Username'] . "</a></td></tr>";
			}
		}

	$hentc		= mysql_query("SELECT * FROM Melding WHERE KategoriID ='$id' AND ID > '1' ORDER BY Dato DESC");
	echo "</table>";
	$antalla	= mysql_num_rows($hentc);
	$antallb	= ceil($antalla/$rows);
	$antall		= $antallb;
	$neste 		= $side + 1;
	$forrige	= $side - 1;
	if ($antall == '1'){
		echo "<small>Forrige (side 1 av 1) Neste</small>";
		}
	else {
		if ($side == '1'){
			echo "<small>Forrige (side 1 av " . $antall . ") <a href='forum.php?action=visforum&id=" . $id . "&side=" . $neste . "'>Neste</a></small>";
			}
		elseif ($side == $antall){
			echo "<small><a href='forum.php?action=visforum&id=" . $id . "&side=" . $forrige . "'>Forrige</a>(side " . $side . " av " . $antall . ") Neste</small>";
			}
		else {
			echo "<small><a href='forum.php?action=visforum&id=" . $id . "&side=" . $forrige . "'>Forrige</a>(side " . $side . " av " . $antall . ") <a href='forum.php?action=visforum&id=" . $_GET['id'] . "&side=" . $neste . "'>Neste</a></small>";
			}
		}
	mysql_close($con);
	}

 

 

Ser ikke feilen her heller :p

Endret av Jokkeman
Lenke til kommentar

$hent = mysql_query("SELECT * FROM Melding WHERE KategoriID ='$id' AND ID > '1' ORDER BY Dato DESC LIMIT ".$minst.", ".$rows."");

 

J****lig trøtt nå, men: det skal vel være > '0' ellerså vil den ikke regne med raden med id = 1.

 

Si ifra om det ikke hjalp ;)

Endret av Inspired87
Lenke til kommentar
Hei.

 

Orker ikke å teste scriptet ditt, men kompis driver å bygger opp ett hjelpeforum for php, og jeg fikk han til og legge opp et paging script nå.. Det ligger på www.destrobe.com.

 

Får nå at serveren er nede -.- :D

 

Der kom serveren opp igjen :) har nå testet dette og det ser ikke ut til å funke helt.

 

Alle resultatene kommer opp og det blir også telt hvor mange det er. men når jeg prøver å klikke på linkene som viser til neste side så skjer det ingenting. den bare skifter id uten at noe skjer :S

 

http://globalmafia.sytes.net/projects/auksjon/merkelig.php

 

du ser det her :)

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...