Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 06-24-2013, 12:52 PM
Alwandy Alwandy is offline
 
Join Date: Feb 2013
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Fetch Row isn't grabbing all data in row

Hey there, basically I'm making something for my group and currently being a newbie in VB Classes & hooks.

Anyways, I made a query that would fetch every row in the table which it does because when I do this.
PHP Code:
$result $db->query_read("SELECT * FROM uksfroster");
  
while (
$fname $vbulletin->db->fetch_row($result)){
    echo 
$fname[1];

It displays them all but we know it requires to work with the template so I save it in $ffname like this.

PHP Code:
$result $db->query_read("SELECT * FROM uksfroster");
  
while (
$fname $vbulletin->db->fetch_row($result)){
    
$ffname $fname[1];
}
$templater->register('firstname'$ffname); 
And uses this in template,

Code:
    <div class="blockbody">
      <div class="blockrow">
      {vb:raw firstname}
    </div>
    </div>
What happens is that only last piece of information get shown like this.
Lets say I got Alpha Bravo Charlie and I use row to show them all but in the end only Charlie comes out but I want Alpha and Bravo too.

What am I doing wrong?
Reply With Quote
  #2  
Old 06-24-2013, 01:20 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You are overwriting the value of $ffname every time through the loop, so that in the end it is just set to the last name, as you saw. You could do this:
Code:
$result = $db->query_read("SELECT * FROM uksfroster");
  
while ($fname = $vbulletin->db->fetch_row($result)){
    $ffname .= $fname[1] . '<br />';
}
$templater->register('firstname', $ffname);

Then you should see them all. You could also render a small template inside the loop to format the data for each user, so that you wouldn't need to have any html in the code.

Another way to do it would be to use the vb4 loop template tags. WHat you'd do is build an array of the names, register that to the template, then put the loop tags in the template, like:
Code:
$result = $db->query_read("SELECT * FROM uksfroster");
  
while ($fname = $vbulletin->db->fetch_row($result)){
    $ffname[] = $fname[1];
}
$templater->register('firstname', $ffname);

Then in the template:

Code:
<vb:each from="firstname" key="key" value="username">
   Name: {vb:var username}<br />
</vb:each>
Reply With Quote
Благодарность от:
Alwandy
  #3  
Old 06-24-2013, 01:23 PM
Scanu's Avatar
Scanu Scanu is offline
 
Join Date: Nov 2010
Posts: 829
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I remember i do this sometime ago in a mod.. What's the template where you are registering the variable?
you can try something like this:
PHP Code:
$result $db->query_read("SELECT * FROM uksfroster"); 
   
while (
$fname $vbulletin->db->fetch_row($result)){ 
    
$ffname $fname[1]; 
    
$templater->register('firstname'$ffname);

I don't think it will work but you can try

--------------- Added [DATE]1372083944[/DATE] at [TIME]1372083944[/TIME] ---------------

Kevin get it first yes that's what i've used, that's like the foreach function in php
Reply With Quote
  #4  
Old 06-24-2013, 01:26 PM
Alwandy Alwandy is offline
 
Join Date: Feb 2013
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the help!
First way worked but didn't get 2nd way work, I'll look into it as 2nd way looks more easier to do and have since it'll be a roster.

Resolved it, thanks!
Reply With Quote
  #5  
Old 06-24-2013, 01:30 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I fixed the template code above - I had used 'ffname' instead of 'firstname' that you used to register the variable. Maybe that's why it didn't work for you.
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 08:49 AM.


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.04166 seconds
  • Memory Usage 2,199KB
  • 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
  • (3)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (1)post_thanks_box_bit
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete