Gå til innhold

Sider i gjestebok


Anbefalte innlegg

Videoannonse
Annonse

Lagrer du innleggene i en database eller i en flatfil? Flere flatfiler?

 

I bunn og grunn blir de dog det samme. En enkel "formel" for å finne ut hvor mange sider det er:

 

// Fyll ut de korrekte verdiene
$sider = ceil($innlegg/$innlegg_per_side);

Deretter skulle det ikke være så vanskelig å sjekke om du trenger fram/tilbake linker:

$fram = ($denne_siden==1?false:true);
$tilbake = ($denne_siden==$sider?false:true);

Søker du i MySQL vil du ha en spørring omtrent slik:

$fra = ($denne_siden*$innlegg_per_side-$innlegg_per_side);
$spørring = "SELECT blablabla FROM db WHERE id = $id LIMIT $fra, $innlegg_per_side";

Endret av Me sjøl
Lenke til kommentar

Hvis det er en database det er snakk om så løser du det ved hjelp av LIMIT i spørringen din. MySQL fraråder bruken av LIMIT dersom databasen er liten, for da vil MySQL være raskere dersom den får behandle hele databasen.

 

Dette er bare en anbefaling, og for å forenkle koden din vil det være raskere å kun fokusere på å bruke LIMIT.

Lenke til kommentar

hehe jeg kan jo litt php da.

<?

//I give variables for the name and location of the datafiles here.
$datedata = "inc/flatfile/dates.txt";
$timedata = "inc/flatfile/times.txt";
$titledata = "inc/flatfile/titles.txt";
$messagedata = "inc/flatfile/messages.txt";
$webdata = "inc/flatfile/webs.txt";
$emaildata = "inc/flatfile/emails.txt";
$namedata = "inc/flatfile/names.txt";
$genderdata = "inc/flatfile/genders.txt";

/* I here open the datafiles for reading, so they access the information stored within the files if posts have been made in the guestbook. */
$frdate = fopen($datedata, "r");
$frtime = fopen($timedata, "r");
$frtitle = fopen($titledata, "r");
$frmessage = fopen($messagedata, "r");
$frweb = fopen($webdata, "r");
$fremail = fopen($emaildata, "r");
$frname = fopen($namedata, "r");
$frgender = fopen($genderdata, "r");

//Checks the filesize of the name.txt datafile
$fs = filesize("$namedata");

/* If the size was 0 bytes, we can conclude that the guestbook is empty, since the name field is required. So I stop the script and enter a "no posts" message. */
if ($fs == 0){
die("<br>Ingen innlegg funnet.");
}

//If the file is not 0 bytes, then the scripts proceeds.
else {

//This while loops checks so the filepointers aren't at the end of the file.
while ( !feof($frname) ){



//Gets the data from the files.
$date = fgets($frdate);
$time = fgets($frtime);
$title = fgets($frtitle, 30);
$message = fgets($frmessage, 500);
$web = fgets($frweb, 60);
$email = fgets($fremail, 60);
$name = fgets($frname, 40);
$gender = fgets($frgender);

//Adds a space for empty rows so the script does not detect and make a table for an empty row
if ($name == ""){
echo " ";
}


//Types out the table that the entire post info will be shown in. It is how the posts will look like, put simply.

else {

echo "<br><br><table border=\"1\" bordercolor=\"#7F9DB9\" cellpadding=\"5\" style=\"border-collapse: collapse\" cellspacing=\"0\" width=\"500\" class=\"posts\"><tr><td rowspan=\"2\" width=\"100\" class=\"namefield\" valign=\"top\">$name<br><br>
<a href=\"$web\">Webside</a><br><br><a href=\"mailto:$email\">E-post</a></td><td valign=\"top\" class=\"title\" height=\"1\"><b>$title</b> Lagt inn <b>$date</b> kl: <b>$time</b></td></tr><tr><td valign=\"top\" width=\"500\" height=\"100\" class=\"message\">$message</td></tr></table>";

}
}
}
//Closes the files that were opened for reading.
fclose($frdate);
fclose($frtime);
fclose($frtitle);
fclose($frmessage);
fclose($frweb);
fclose($fremail);
fclose($frname);
fclose($frgender);
?>

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