Return X values where an ID number doesnt matter
Posted on
16th Feb 2014 07:03 pm by
admin
Well as for subject heading, thats the best i could think of.
Currently im having a problem with a rather old piece of script i had written for a guestbook.
The guestbook itself relies completely on the `id` field of the table to show the posts.
But if a post is deleted, then it screws up the pagination of the posts such that if you were to click "next page" the same results as the last page would show.
The query:
Line number On/Off | Expand/Contract$set = $numAllResults-$offset+1;SELECT * FROM `posts` WHERE `id` <= '$set' ORDER BY `id` DESC
This query works wonders if every entry in the table is only incremented by 1, but breaks when an entry of 'X' does not exist. ie. it skips post 'X' but also shows older posts based on the newest entry. As i know this isnt clear, let me clear it up with an example:
Line number On/Off | Expand/Contracttable - `posts``id`, `name`, `post`1,'Joe','Hi there'2,'Johanna','Love the guest book'3,'Jeff','Great stuff'4,'James','Could have more stuff'8,'John','Excellent!'9,'Joel','Not bad'
As you can see, there are 3 entries missing because they were deleted.
As it stands, there should be 2 pages in the guestbook because there are more than 5 entries.
However, the first page will show entries:
9,8,4,3,2.
The second page:
8,4,3,2,1
Now in this example, the problem isnt too huge, although when i have say 20 entries with half deleted, it will show the same posts for about 4 pages, and then change after the $set is lower than the older posts.
Yes i am posting my code, but, this was written over a year ago now, so i know i am breaking some of my own today's standards for programming Im just looking for a fix so that when items are deleted it will still show everything properly.
Line number On/Off | Expand/Contract<?phpinclude_once("include/connect.php");$guestbookconnect = connect();mysql_select_db("alexast_db",$guestbookconnect);$offset = $_GET['p'];if(!$_GET['p']){$offset = 0;}if($offset < 0){print "<script>window.location = 'guestbook.php';</script>";}$results = 5; //display number of results per page.$currentresults = 0; $getAllPostsSQL = "SELECT * FROM `posts` ORDER BY `id` DESC";$getAllPostsQuery = mysql_query($getAllPostsSQL, $guestbookconnect) or die(mysql_error($guestbookconnect));$numAllResults = mysql_num_rows($getAllPostsQuery); $set = $numAllResults-$offset+1;$getPostsSQL = "SELECT * FROM `posts` WHERE `id` <= '$set' ORDER BY `id` DESC";$getPostsQuery = mysql_query($getPostsSQL, $guestbookconnect) or die(mysql_error($guestbookconnect));$numResults = mysql_num_rows($getPostsQuery); while($getPostsResult = mysql_fetch_assoc($getPostsQuery)){$currentresults++; if($currentresults <= $results){?> <div class="guestbook_frame"> <div class="guestbook_box1"> <div id="style_name"><?php print $getPostsResult['name']; ?></div> </div> <div class="guestbook_box2"> <div id="style_date"><?php print $getPostsResult['date']; ?></div> </div> <div class="guestbook_box3"> </div> <div class="guestbook_box4"> <div id="style_content"><?php print $getPostsResult['content']; ?></div> </div> </div><?php }}mysql_close($guestbookconnect);?>
No comments posted yet
Your Answer:
Login to answer
188
47
Other forums
Why is this function returning a false value when it shouldn't be??
This is in an include file. I want it to check a value in an html form and see if it's just white s
How to implement HTTP connection timeout
Hi All,I would like to implement an HTTP connection timeout.
I am working on a application wh
Page not Loading After Test
Hey All
It seemed that an inlcude statement wasn't working for some reason, so I tried a more
Captcha problem users just refresh and it will let them auto submit again
Users will just re submit and not have to enter the new captcha.. ? Lol but if i refresh the page, t
Inserting Data into a MS Access DB using PHP.
As part of my uni course I am doing a placement at a company whom want me to create a client zone fo
Please help with SMTP Authenticated PHP Email Form
Hello, I'm creating a PHP email form, and for this particular server, I have to use SMTP Authenticat
Preventing blank or already entered values
Im trying to learn how to place a read file line by line and prevent duplicate entries and also BLAN
getting rid of quotes in strings
sick of trying to deal with them in multiple ways (entering in and taking from database, echoing, ec
Help? Need help on project with templates involving mysql and php.
I'm having a hard time explaining what I want but basically here is what I have in place:
-Da
Run function every 5 mins ??
I have a function PostMessage()
How can I run it every 5 mins ??