Jag hittade ett paging system som jag la till mitt forum, och jag får inga felmeddelande med när jag fyller i formuläret så lägg det inte in i db.
<?php
function matain() {
$datum = date("Y-m-d H:i:s");
$länk = mysql_connect ("localhost", "******","*******");
$databas = mysql_select_db("******");
$namn = $_POST['namn'];
$inlagg = $_POST['inlagg'];
$epost = $_POST['email'];
$sql="INSERT INTO forum(namn,inlagg,email,datum) VALUES('$namn','$inlagg','$email','$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 epo = document.matain.epost.value;
if((nam.length != 0) && (inl.length != 0) && (epo.length != 0)) {
return true;
} else {
alert("Du glömde att fylla i Namn, Epost eller Inlägg");
return false;
}
}
</script>
<?
$con = mysql_connect("localhost","******","******")
or die("Error connecting to db<br>".mysql_error());
$db = mysql_select_db("******")
or die("Error selecting db<br>".mysql_error());
// Nu bestämmer vi antal per sida och kollar vi upp totala antalet
$limit = 3; // Antal per sida
$result = mysql_query("SELECT count(*) as count FROM forum")
or die("Error fetching number in DB<br>".mysql_error());
$row = mysql_fetch_array($result);
$numrows = $row['count']; // Antal i databasen
// Sedan kollar vi om startvariabeln är satt
if (!isset($_GET['start']) || $_GET['start'] == "")
$start = 0;
else
$start = $_GET['start'];
// Då räknar vi ut hur många sidor det blev
$pages = intval($numrows/$limit);
if ($numrows%$limit)
$pages++;
// Hämta länk till förstasidan och föregående sida
if ($start > 0) {
$numlink = '<a href="?start=0">««</a> ';
$numlink .= '<a href="?start='.($start - $limit).'">«</a> ';
} else {
$numlink = '«« ';
$numlink .= '« ';
}
// Hämta sidonummer
for ($i = 1; $i <= $pages; $i++) {
$newoffset = $limit*($i-1);
if ($start == $newoffset)
$numlink .= '['.$i.'] ';
else
$numlink .= '<a href="?start='.$newoffset.'">'.$i.'</a> ';
}
// Hämta länk till nästa sida
if ($numrows > ($start + $limit))
$numlink .= '<a href="?start='.($start + $limit).'">»</a> ';
else
$numlink .= '» ';
// Hämta sista sidan
if ($start != $newoffset)
$numlink .= '<a href="?start='.$newoffset.'">»»</a> ';
else
$numlink .= '»»' ;
// Skriv ut sidorna
echo $numlink ."<br>";
echo "<hr>";
// Nu kan vi hämta datan från databasen och skriva ut den
$result = mysql_query("SELECT * FROM forum ORDER BY id DESC LIMIT ".$start.",".$limit."")
or die("Error fetching data<br>".mysql_error());
while ($row = mysql_fetch_array($result)){
echo nl2br($row['inlagg'] );
echo "<h1><b>".$row['namn']."</b> ". $row['datum']."</h1>" ;
echo "<hr>";
}
mysql_close ($con);
?>
och så här ser formuläret ut:
<form method="post" action="forum.php" name="matain" onSubmit="return skicka_OnClick();">
<p>Namn:<br>
<input type="text" name="namn">
<br>
e-mail:<br>
<input type="text" name="epost">
<br>
Inlägg:<br>
<textarea name="inlagg" rows="8" cols="15"></textarea>
<br>
<br>
<input type="submit" name="nytt" value="< Skicka">
</form>