vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   PHP: 1 array being used by multiple loops. (https://vborg.vbsupport.ru/showthread.php?t=258309)

wpeloquin 02-03-2011 07:12 PM

PHP: 1 array being used by multiple loops.
 
To start, yes I am a novice at this and am currently learning.

I am having difficulty getting a single array to work in multiple places. i have a table with a list of classes in it, and i pull that into an array. i then want to use the data in that array to make multiple <select> form options. This code that i have works with one <select> but leaves the others blank. If i make 3 arrays, one for each, then it all works. Is it not possible to use just 1 array to knock out some of the redundancy of the code?

here is the code:
Code:

$my_classall = $vbulletin->db->query_read("
        SELECT class_id, class_name
        FROM " . TABLE_PREFIX . "my_table_class AS my_table_class
        ORDER BY class_name ASC
");


while ($my_class1 = $vbulletin->db->fetch_array($my_classall))
{
        $my_class1_name = $my_class1['class_name'];
        eval('$my_class1selector .= " <option value=\"'.$my_class1['class_id'].'\" " . iif($my_toon[class_1]==$my_class1[class_id]," selected=\"selected\"","").">'.htmlspecialchars($my_class1['class_name']).'</option> ";');
}


while ($my_class2 = $vbulletin->db->fetch_array($my_classall))
{
        $my_class2_name = $my_class2['class_name'];
        eval('$my_class2selector .= " <option value=\"'.$my_class2['class_id'].'\" " . iif($my_toon[class_2]==$my_class2[class_id]," selected=\"selected\"","").">'.htmlspecialchars($my_class2['class_name']).'</option> ";');
}


kh99 02-03-2011 07:51 PM

I can't say that I know exactly what you want to do because it looks like you're trying to build exactly the same string twice, which seems unnecessary. But I think what you have posted above doesn't work because you're doing the query, looping through the results, then trying to loop through them again (which I don't think will work, I think you'd have to perform the query again).

If you want to have more than one select, why not just use the same string of options for both? Or if the options aren't really supposed to be exactly the same, you could build both strings in the same loop.

wpeloquin 02-04-2011 09:31 AM

the object, in this case a character, will be able to have up to 3 classes. when a user goes back to edit a character, the <select> option that was input will be the default option, based on the iif statement in the eval. since there are 3 possible classes, there needs to be 3 distinct select menus, even though the menus have the same data.

are you saying that the 3 different name and eval statements can all be put in the same loop? i have not tried that, will try it later today.

kh99 02-04-2011 11:02 AM

Quote:

Originally Posted by wpeloquin (Post 2158623)
since there are 3 possible classes, there needs to be 3 distinct select menus, even though the menus have the same data.

I see now - my mistake, I missed the "iff" part.

Quote:

are you saying that the 3 different name and eval statements can all be put in the same loop?
Yeah, that should work.

wpeloquin 02-06-2011 01:17 AM

Thank you very much :)


All times are GMT. The time now is 12:30 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.01123 seconds
  • Memory Usage 1,724KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete