The Arcive of vBulletin Modifications Site. |
|
|
#1
|
|||
|
|||
|
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:
|