Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
Prev Previous Post   Next Post Next
  #11  
Old 01-05-2005, 06:57 AM
rake's Avatar
rake rake is offline
 
Join Date: Nov 2002
Posts: 311
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by cinq
Problem Number 2

I implemented a 'Previous article Next article' feature at the top of each article page which provides an easy means to quickly navigate to another article.

This is the code currently in place:
PHP Code:
# previous and next article links
$nextone $artid+1;
$chknextonequery $DB_site->query("SELECT articles_articleid FROM " TABLE_PREFIX "articles_article WHERE articles_articleid=$nextone");
if(
$DB_site->num_rows($chknextonequery)>0)
    {
        
$nextarticle 1;
    }
else
    {
        
$nextarticle 0;
    }

$previousone $artid-1;
$chkpreonequery $DB_site->query("SELECT articles_articleid FROM " TABLE_PREFIX "articles_article WHERE articles_articleid=$previousone");
if(
$DB_site->num_rows($chkpreonequery)>0)
    {
        
$prearticle 1;
    }
else
    {
        
$prearticle 0;
    } 
The template where it appears :
Code:
<span class="smallfont" style="float:$stylevar[right]">
<if condition="$prearticle==1">
<a href="articles.php?$session[sessionurl]action=viewarticle&artid=$previousone">< Previous Article</a></if>
<if condition="$nextarticle==1 && $prearticle==1">
&nbsp;&nbsp;|&nbsp;&nbsp;
</if>
<if condition="$nextarticle==1">
<a href="articles.php?$session[sessionurl]action=viewarticle&artid=$nextone">Next Article ></a></if>
</span>
Now this code works fine, BUT it assumes that all the rows in the database for articles are present in running order. eg. articleid=1,2,3,4....,100.. It presents a problem when there is a missing articleid in between. for eg. articleid=1,2,3,5,8,10,...,100...

How can I change things to make this work ?
Also if possible combine queries ?
if($next = $DB_site->query_first("SELECT whatever FROM table WHERE articles_articleid > $artid ORDER BY artid ASC"))
{
$nextarticle = 1;
}

if($previous = $DB_site->query_first("SELECT whatever FROM table WHERE articles_articleid < $artid ORDER BY artid DESC"))
{
$prearticle = 1;
}


TADA!
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:01 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08326 seconds
  • Memory Usage 3,642KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (9)bbcode_php
  • (14)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (41)post_thanks_box
  • (41)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (41)post_thanks_postbit_info
  • (41)postbit
  • (9)postbit_attachment
  • (41)postbit_onlinestatus
  • (41)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • postbit_attachment
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete