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

Reply
 
Thread Tools Display Modes
  #1  
Old 07-23-2010, 04:18 AM
Jay Lee Jay Lee is offline
 
Join Date: Jun 2010
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Using Combined Template Conditionals

I'm trying to understand how to use conditionals in templates, using the following thread as an initial guide:

https://vborg.vbsupport.ru/showthread.php?t=217570

So basically what I'm trying to do is to show a track listing. Let's say the following is what's in the database:

Field "trackartist": Artist 1, Artist 2, Artist 3
Field "tracktitle": Title 1, Title 2, Title 3

So I need to figure out how to convert the following php code so that it's compatible with vBulletin:

Code:
$doquery = mysql_query("SELECT trackartist, tracktitle FROM `tracklisting`");
$numberoftracks = mysql_num_rows($doquery);
$count = 0;

for ($i = 0; $i < $numberoftracks; $i++)
{
$trackartist[$i] = mysql_result($doquery, $count, "trackartist");
$tracktitle[$i] = mysql_result($doquery, $count, "tracktitle");
echo $trackartist . " - " . $tracktitle . "<br>";
}
The output should be simple:

Artist 1 - Title 1
Artist 2 - Title 2
Artist 3 - Title 3

The problem is, I don't know how to combine template conditionals, meaning I was only able to show each variable separately:

Code:
<vb:each from="trackartist" key="character1" value="trackartist">
<li> {vb:var trackartist} </li>
</vb:each>
Output:

Artist 1
Artist 2
Artist 3

Code:
<vb:each from="tracktitle" key="character2" value="tracktitle">
<li> {vb:var tracktitle} </li>
</vb:each>
Output:

Title 1
Title 2
Title 3

The closest I was able to get to the correct result was the following:

Code:
<vb:each from="trackartist" key="character1" value="trackartist">
<vb:each from="tracktitle" key="character2" value="tracktitle">
<li> {vb:var trackartist} - {vb:var tracktitle} </li>
</vb:each>
</vb:each>
Output:

Artist 1 - Title 1
Artist 1 - Title 2
Artist 1 - Title 3

So how do I get the correct result? Any help would be greatly appreciated!
Reply With Quote
  #2  
Old 07-23-2010, 04:08 PM
Guest190829
Guest
 
Posts: n/a
Default

Just concat the HTML output in the loop.

PHP Code:

$tracks 
mysql_query("SELECT trackartist, tracktitle FROM tracklisting");

$tracks_bit '';
while(
$track mysql_fetch_array($tracksMYSQL_ASSOC)
{
    
$tracks_bit .= '<p>' $track['trackartist'] . ' -  ' $track['tracktitle'];

Then register the variable, and you should have the correct output.
Reply With Quote
  #3  
Old 07-24-2010, 04:12 AM
Jay Lee Jay Lee is offline
 
Join Date: Jun 2010
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Danny.VBT View Post
Just concat the HTML output in the loop.

PHP Code:

$tracks 
mysql_query("SELECT trackartist, tracktitle FROM tracklisting");

$tracks_bit '';
while(
$track mysql_fetch_array($tracksMYSQL_ASSOC)
{
    
$tracks_bit .= '<p>' $track['trackartist'] . ' -  ' $track['tracktitle'];

Then register the variable, and you should have the correct output.
I knew I was missing something simple! Your code works! Thank you so much!
Reply With Quote
  #4  
Old 07-29-2010, 12:31 PM
Retal Retal is offline
 
Join Date: Nov 2006
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It would be even better if you didn't use HTML in the code.
Instead of
PHP Code:
while($track mysql_fetch_array($tracksMYSQL_ASSOC

    
$tracks_bit .= '<p>' $track['trackartist'] . ' -  ' $track['tracktitle']; 

create a template for each bit and do something like
PHP Code:
while($track mysql_fetch_array($tracksMYSQL_ASSOC

$templater vB_Template::create('tracks_bit');
    
$templater->register('track'$track);
$tracks_bit .= $templater->render(); 

Reply With Quote
  #5  
Old 08-01-2010, 08:58 PM
Jay Lee Jay Lee is offline
 
Join Date: Jun 2010
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the additional tip Retal. I'll use your code and if I encounter any problems I'll post questions.
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 09:20 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.03595 seconds
  • Memory Usage 2,213KB
  • 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
  • (4)bbcode_code
  • (4)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (4)postbit_onlinestatus
  • (5)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