webForumDet fria alternativet

Gästbok

3 svar · 615 visningar · startad av Mackelito

MackelitoMedlem sedan jan. 20043 inlägg
#1

Ännu en fråga om gästböcker... vill få så att det visas 10 st inlägg per sida samt görs länkar till de återstående inläggen!

Har läst igenom mycket båda här och på andra forum men utan att lyckas impledera tipsen på min sida... snälla hjälp mig!

här kommer koden.

<? error_reporting(E_ALL); ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Gästbok</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="gb.css" rel="stylesheet" type="text/css">
</head>

<body>
<?
if(isset($_POST['nytt']))
{
matain();
}

// TIPS: LÄGG DESSA TVÅ RADER I EN INCLUDE FIL OM DU ARBETAR MED STÖRRE PROJEKT
$link = mysql_connect ("localhost", "root","");
mysql_select_db("gast");

// TIPS: SKRIV ALDIRG "SELECT *" VID STÖRRE PROJEKT DÅ MYSQL
// INTE KAN HANTERA INDEXERINGAR AV TABELLER DÅ = JÄTTESLÖTT.
// RADDA HELST AV ALLT UPP ALLA KOLUMNER DU SKA JOBBA MED
$sql = "SELECT * FROM gast ORDER BY datum DESC LIMIT 0,10";
$resultat = mysql_query($sql);

while($rad=mysql_fetch_array($resultat))
{
?>
<font face="verdana" size="2"><p><?=$rad["inlagg"]?></p></font>
<a href="mailto:<?=$rad["epost"]?>"><?=$rad["namn"]?></a>
<?=$rad["datum"]?>
<hr>
<?

}

mysql_close ($link);

?>
<form method="post" action="gb.php" name="matain"
onSubmit="return skicka_OnClick();">
Namn:<br>
<input name="namn" type="text" class="box">
<br>
Epost:<br><input type="text" name="epost" class="box"><br>
Inlägg:<br><textarea name="inlagg" rows="6" cols="35" class="box"></textarea><br>
<br>
<input type="submit" name="nytt" value="Skicka">
<input type="reset" value="Rensa">
<br>
</form>
</font>
<?
function matain()
{
$datum = date("Y-m-d H:i:s");
$länk = mysql_connect ("localhost", "root","");
$databas = mysql_select_db("gast");
$namn = $_POST['namn'];
$inlagg = $_POST['inlagg'];
$epost = $_POST['epost'];
$sql = "INSERT INTO gast(namn,inlagg,epost,datum)
VALUES('".$namn."','".$inlagg."','".$epost."','#".$datum."#')";
mysql_query($sql);
mysql_close ($länk);
}
?>

<script language="javascript">
function skicka_OnClick()
{
var nam = document.matain.namn.value;
var inl = document.matain.inlagg.value;
var eop = document.matain.epost.value;
if((nam.length !=0) && (inl.length !=0) && (epo.length !=0))
{
return true;
}
else
{
alert("Du har inte fyllt i allt");
return false;
}
}

</script>
</body>
</html>

D-M_RMedlem sedan aug. 2002115 inlägg
#2

Använd detta när du hämtar inläggen:

$page = $_GET['page'];
if (!$page) {
$page = 1;
}
$post_per_page = 10; // Visa 10 inlägg per sida.
$limit_start = ($post_per_page*($page-1));
$sql = "SELECT * FROM gast ORDER BY datum DESC LIMIT ".$limit_start.",".$post_per_page."";

Sedan kan du anropa gästboken med index.php?page=2 för att visa sida två till exempel.

Sedan kan du göra så här för att göra länkar till varje sida.

$sql = "SELECT COUNT(*) AS num_posts FROM gast";
$resultat = mysql_query($sql);
$resultat_array = mysql_fetch_array($resultat);
$num_posts = $resultat_array['num'];
$num_pages = (int) ($num_posts / $post_per_page + 1);
if ($num_posts%$post_per_page == 0 && $num_pages > 1) {
	$num_pages--;
}

print("Sidor: ");
for ($i=1; $i<=$num_pages; $i++) {
	print("<a href=\"?page=".$i."\">".$i."</a> ");
}
print("<br>");

Typ lite så. Du kan nog fundera ut själv hur du kan fixa till det ännu bättre. Det fungerar i alla fall fint ... så länge jag inte har skrivit något fel någon stans :D

MackelitoMedlem sedan jan. 20043 inlägg
#3

fixade det igår natt men tack så jätte mycket!... det hjälper säkert andra ;) ... din kod va mycket enklare än det andra jag hittat här!

D-M_RMedlem sedan aug. 2002115 inlägg
#4

hehe :)

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb