Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 06-01-2007, 08:33 PM
mccollin mccollin is offline
 
Join Date: Jul 2003
Location: North Carolina, USA
Posts: 160
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How do I redirect from my module if query fails?

I am building a CMPS module that will let me dynamically build a page from GARS custom fields, so that I can have one page definition and generate hundreds of pages from it. I have it all working, but I need to now put in some error detection. I am passing a url value that is used to find the correct thread. If someone inputs a bogus value, then it takes me into a messy end result... here is the framework I am working with...

PHP Code:
$device $vbulletin->input-clean_gpc('r''d'TYPE_NOHTML); 

$sql "SELECT statement...  
          WHERE .... AND gcv.gars36 = '
$device' "

$result $db->query_read($sql);  

    while (
$result $db->fetch_array($results))
    {
 ..........
    } 
The value that is passed into $device is supposed to match one unique thread. If the value is bogus, nothing is found. How can I detect that I retrieved no rows and immediately redirect to another url without continuing the module?

Assuming I can do that, is there a way to also do the redirect if I return more than one row?
Reply With Quote
  #2  
Old 06-01-2007, 08:44 PM
harmor19 harmor19 is offline
 
Join Date: Apr 2005
Posts: 1,324
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

After you do the SQL query add.

PHP Code:
if(mysql_error())
{
   
//error

Reply With Quote
  #3  
Old 06-01-2007, 09:22 PM
mccollin mccollin is offline
 
Join Date: Jul 2003
Location: North Carolina, USA
Posts: 160
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, I'm not sure it is going to produce an error... by fail, I meant to say that it didn't find anything. If it doesn't find anything, then all the data for the rest of the module and templates won't exist and so the result is just a big mess. I do have some follow-on queries in some of the modules that will fail, but I'd like to catch it at the source, and redirect to another page in vbulletin. I tried a count() on the array, but it doesn't seem to work for me. I guess I'll have to stick something in the data that I can test for... I was hoping there was an easy way to determine if I didn't find any rows, and then just bale out.

Assuming that is figured out... how can I redirect out of this module? Is there some vBulletin function that would let me go elsewhere with a call? Or, do I need to call a template and build the contents with static data? I was hoping to just call a different page.
Reply With Quote
  #4  
Old 06-02-2007, 07:33 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
$db->num_rows == 
Reply With Quote
Reply


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 07:54 PM.


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.03574 seconds
  • Memory Usage 2,188KB
  • Queries Executed 11 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (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_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • 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
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete