Gå til innhold

Sider i gjestebok


Anbefalte innlegg

Skrevet

Hvordan lager jeg sånn at det kun vises eks. 10 innlegg i gjesteboken så må du gå videre til neste side for å lese de 10 neste?

 

 

Håper noen kan hjelpe meg

Videoannonse
Annonse
Skrevet (endret)

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
Skrevet

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.

Skrevet

nei det er flatfil, men forstod det ikke helt for det om. Er helt grønn når det hjelder dette så hvis noen kunne forklart meg nøye eller bare laget en kode hadde dette vært fint

Skrevet
...eller bare laget en kode hadde dette vært fint ...
Hehe... du får nok lære deg litt php.

 

For å kunne svare på hvordan det er mulig å få til det må vi se strukturen på filen der innleggene lagres.

Skrevet

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);
?>

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...