ich würde gerne eine tabelle auf grund 2er db-tabellen ausgeben.
diese sollen eigentlich wie folgt geschachtelt sein:
Code: Alles auswählen
<!-- BEGIN skillrow -->
<tr>
<td class="row1" align='center' rowspan='{skillrow.USERANZ}'>{skillrow.SKILL} / {skillrow.USERANZ}</td>
<!-- BEGIN userrow -->
<td class="row1" align='center'>{userrow.NAME}</td>
<td class="row1" align='center'>{userrow.LEVEL}</td>
<!-- END userrow -->
</tr>
<!-- END skillrow -->
</table>
der code dahinter lautet:
Code: Alles auswählen
// get uis some skills ^^
$sql = 'SELECT ID FROM phpbb_craftsman_skill';
$result = $db->sql_query($sql);
$skill_list = array();
while ($row = $db->sql_fetchrow($result))
{
$skill_list[] = (int) $row['ID'];
}
$db->sql_freeresult($result);
// So, did we get any users?
if (sizeof($skill_list))
{
$sql = 'SELECT *
FROM `phpbb_craftsman_skill`
ORDER BY `phpbb_craftsman_skill`.`skill` ASC';
$result = $db->sql_query($sql);
$skill_cache = array();
while ($row = $db->sql_fetchrow($result))
{
$skill_cache[$row['ID']] = $row;
}
$db->sql_freeresult($result);
for ($i_skill = 0, $end = sizeof($skill_list); $i_skill < $end; ++$i_skill)
{
$skill_id = $skill_list[$i_skill];
$row_skill =& $skill_cache[$skill_id];
//------------ NAMES
// get uis some names
$sql = 'SELECT ID FROM phpbb_craftsman_data WHERE skill = '.$row_skill['ID'];
$result = $db->sql_query($sql);
$data_list = array();
while ($row = $db->sql_fetchrow($result))
{
$data_list[] = (int) $row['ID'];
}
$db->sql_freeresult($result);
// So, did we get any users?
if (sizeof($data_list))
{
$sql = 'SELECT * FROM phpbb_craftsman_data';
$result = $db->sql_query($sql);
$data_cache = array();
while ($row = $db->sql_fetchrow($result))
{
$data_cache[$row['ID']] = $row;
}
$db->sql_freeresult($result);
for ($i_data = 0, $end = sizeof($data_list); $i_data < $end; ++$i_data)
{
$data_id = $data_list[$i_data];
$row_data =& $data_cache[$data_id];
$row_data['lv'] = $skill_lv_list[$row_data['lv']][2];
$userrow = array_merge($arrays, array(
'NAME' => $row_data['name'],
'LEVEL' => $row_data['lv']
));
$template->assign_block_vars('userrow', $userrow);
}
}
else
{
$userrow = array_merge($arrays, array(
'NAME' => 'noname',
'LEVEL' => 'n.A.'
));
$template->assign_block_vars('userrow', $userrow);
//}
$skillrow = array_merge($arrays, array(
'SKILL' => $row_skill['skill'],
'USERANZ' => sizeof($data_list)
));
$template->assign_block_vars('skillrow', $skillrow);
}
}
$template_html = 'craftsman_body.html';
}
und genau so soll er das auch ausgeben.
jedoch funzt das ganze nicht.
sobald in der craftsman_skill_data etwas drinsteht, wird ab der stelle die skills ncihtmehr ausgegeben.
was ist daran falsch?