Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 09-19-2009, 02:57 AM
al3bed's Avatar
al3bed al3bed is offline
 
Join Date: Sep 2006
Location: Bahrain
Posts: 190
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default template reading database data

hello,

I have a problem (how-to).. let me show you an example:

PHP Code:
if(something == something else){
$ain_data $vbulletin->db->query_first("
SELECT id, type, content
FROM " 
TABLE_PREFIX "ainadse AS ainadse
WHERE id = '1'  "
);

//str_replace code to fetch the template (show) here
}

if(
something == something else){
$ain_data $vbulletin->db->query_first("
SELECT id, type, content
FROM " 
TABLE_PREFIX "ainadse AS ainadse
WHERE id = '2'  "
);

//str_replace code to fetch the template (show) here
}

if(
something == something else){
$ain_data $vbulletin->db->query_first("
SELECT id, type, content
FROM " 
TABLE_PREFIX "ainadse AS ainadse
WHERE id = '3'  "
);

//str_replace code to fetch the template (show) here

now the problem is when I call $ain_data from a template it's always take the last one in the template... in our example its will take data of id 3

is there any way to solve that? cuz my brain out of data now!
I try something like this but it's the same:

PHP Code:
if(something == something else){

$ain_id '1';

//str_replace code to fetch the template (show) here
}

if(
something == something else){

$ain_id '2';

//str_replace code to fetch the template (show) here
}

if(
something == something else){

$ain_id '3';

//str_replace code to fetch the template (show) here 
}

$ain_data $vbulletin->db->query_first("
SELECT id, type, content
FROM " 
TABLE_PREFIX "ainadse AS ainadse
WHERE id = '
$ain_id'  "); 
.. template always read last variable $ain_id

what I'm trying to achive? what is my idea?
I want to show ads in a forum by a templete
in a plugin, I read the ads data from the database then
use str_replace to fetch that template in exact place where i want
regarding to the if statment

if there is a better way please tell me
I think my way to achive this is wrong!

thanks alot
Reply With Quote
  #2  
Old 09-19-2009, 03:40 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It's hard to tell what you are doing wrong since you aren't giving us the real if statements.
Reply With Quote
  #3  
Old 09-19-2009, 10:05 AM
al3bed's Avatar
al3bed al3bed is offline
 
Join Date: Sep 2006
Location: Bahrain
Posts: 190
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

sorry the if statements look like:

PHP Code:
$db->hide_errors();
$ain_info $vbulletin->db->query_first("
SELECT fh_loc_1, fh_loc_2, fh_loc_3, fh_adid_1, fh_adid_2, fh_adid_3
FROM " 
TABLE_PREFIX "adsopt AS adsopt
WHERE id = '1' "
);
$db->show_errors();

if(
$ain_info['fh_adid_1'] != '0'){

//code for data 1

}

if(
$ain_info['fh_adid_2'] != '0'){

//code for data 2

}

if(
$ain_info['fh_adid_3'] != '0'){

//code for data 3


code for data is the same as what I wirte in first post something like:

PHP Code:
$ain_data $vbulletin->db->query_first(
SELECT id, type, content 
FROM " 
TABLE_PREFIX "ainadse AS ainadse 
WHERE id = '1'  "
); 

if(
$ain_info['fh_loc_1'] == '1'){
    
$vbulletin->templatecache['FORUMHOME'] = str_replace('$navbar''$ain_tableh $ain_tablef'.'$navbar'$vbulletin->templatecache['FORUMHOME']);}
elseif(
$ain_info['fh_loc_1'] == '2'){
    
$vbulletin->templatecache['FORUMHOME'] = str_replace('$navbar''$navbar'.'$ain_tableh $ain_tablef'$vbulletin->templatecache['FORUMHOME']);} 
whereas $ain_tableh $ain_tablef fetch the templates:

PHP Code:
eval('$ain_tableh .= "' fetch_template('ain_tableh') . '";');
eval(
'$ain_tablef .= "' fetch_template('ain_tablef') . '";'); 
I also try using fetch_template('ain_tablef') in the str_replace command but it's the same
the template always read the last variable in the plugin no matter if there is (if)s or not


hope it's clear to find where is the problem

thanks for your response
Reply With Quote
  #4  
Old 09-19-2009, 02:35 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The way things are written, all three variables could be non-zero (I would guess) and so you end up going through each if statement and they write over each other (in each you set $ain_id to something).

If all you are doing is placing something at the beginning or end of the navbar, why don't you just append it instead of using str_replace? (something like $navbar = $navbar . $ain_tableh . $ain_tablef)
Reply With Quote
  #5  
Old 09-19-2009, 04:05 PM
al3bed's Avatar
al3bed al3bed is offline
 
Join Date: Sep 2006
Location: Bahrain
Posts: 190
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I see.. if all three variables non-zero they write over each other
so what should I do to execute the code after each if statement before get ride of it?

it's not always placing at the beginning or end of the navbar
Reply With Quote
  #6  
Old 09-19-2009, 04:22 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Since I don't know what you are doing, or what your thinking is, I really can't recommend anything else to do. Sometimes it helps to write out what you want in english and write out all the logic involved and then write your conditions afterwards.
Reply With Quote
Reply

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 02:44 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04758 seconds
  • Memory Usage 2,230KB
  • 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
  • (5)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)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