The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
multidimensional array from database table
I am having trouble getting multiple rows from a table to display.
This is where i am currently at... In my plugin php code i have the following: Code:
// This will be in the form of page.php?do=action&user=1 $rkc_getuserid = $vbulletin->input->clean_gpc('r', 'user', TYPE_UINT); $rkc_allchar = $vbulletin->db->query_first(" SELECT char_id, char_name, char_race, char_class FROM " . TABLE_PREFIX . "rkc_plugintable AS rkc_plugintable WHERE user_id = '" . $vbulletin->db->escape_string($rkc_getuserid) . "' "); $rkc_char['char_id'] = htmlspecialchars($rkc_char['char_id']); $rkc_char['char_name'] = htmlspecialchars($rkc_char['char_name']); $rkc_char['char_race'] = htmlspecialchars($rkc_char['char_race']); $rkc_char['char_class'] = htmlspecialchars($rkc_char['char_class']); ... $templater->register('rkc_allchar', $rkc_allchar); $templater->register('rkc_char', $rkc_char); Code:
<tr> <vb:each from="rkc_allchar" value="char"> <td>{vb:raw char}</td> </vb:each> </tr> I am pretty sure this has something to do with making a multidimensional array, but i am not sure how exactly to do this. I have trolled multiple php and vb sites but none of them give me enough to know how to do this when pulling multiple rows with multiple fields from a database. What I am looking to do is something like: Code:
<vb:each from="?" value="?"> // This will create a new row for each row of data collected <tr> <vb:each from="rkc_allchar" value="char"> // This will break down each field from the row into its own <td> <td>{vb:raw char}</td> </vb:each> </tr> </vb:each> Code:
char_array( char1( char_id => $variable, char_name => $variable, char_race => $variable char_class => $variable ), char2( char_id => $variable, char_name => $variable, char_race => $variable char_class => $variable ), char3( char_id => $variable, char_name => $variable, char_race => $variable char_class => $variable ) ); |
#2
|
||||
|
||||
You are using query_first which will only get you one row of data. You need to do a query_read in order to get all the rows.
|
#3
|
|||
|
|||
ah, ty for that. i changed that, but it is still not working properly.
Like i said, I am unsure how to structure the php code and the template code properly. i have tried multiple ways, and will keep trying to find an example/tutorial/etc on what im trying to do, but any help on the structure or what i'm doing wrong is appreciated. ---------------------------- EDIT: User Solved ---------------------------- PHP Code: Code:
$rkc_allchar = $vbulletin->db->query_first(" SELECT char_id, char_name, char_race, char_class FROM " . TABLE_PREFIX . "rkc_plugintable AS rkc_plugintable WHERE user_id = '" . $vbulletin->db->escape_string($rkc_getuserid) . "' "); $count = 0; while ($rkc_char = $vbulletin->db->fetch_array($rkc_allchar)) { $rkc_charlist[$count] = array( 'char_id' => htmlspecialchars($rkc_char['char_id']), 'char_name' => htmlspecialchars($rkc_char['char_name']), 'char_race' => htmlspecialchars($rkc_char['char_race']), 'char_class' => htmlspecialchars($rkc_char['char_class']), ); $count++; ... $templater->register('rkc_charlist', $rkc_charlist); } Code:
<vb:each from="rkc_charlist" value="char"> <tr> <td class="blocksubhead" style="width:15%;">{vb:raw char['char_id']}</td> <td class="blocksubhead" style="width:15%;">{vb:raw char['char_name']}</td> <td class="blocksubhead" style="width:15%;">{vb:raw char['char_race']}</td> <td class="blocksubhead" style="width:15%;">{vb:raw char['char_class']}</td> </tr> </vb:each> |
#4
|
||||
|
||||
Have you tried doing a search in the default vbulletin files for some code that is an example of what you want?
|
#5
|
|||
|
|||
i posted my solution as an edit to my last post. Thanks for the help!
|
#6
|
||||
|
||||
Thanks for posting the solution and I'm glad you got it figured out.
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|