Joomla 3 хранит вывод процедуры mysql как форматировать
Это может быть что-то простое, но я продолжаю пытаться и не могу сделать это. Я использую Joomla 3 с бэкэнд mysql, у которого есть пользовательская процедура (blogvote (i int)), которая возвращает голоса и назначает очки на основе голосования - в основном это простой код:
SELECT FLOOR(COUNT(`vote`)/10) AS POINTS, COUNT(`vote`) AS LIKES FROM `table1`, `table2` b
WHERE b.`id` = `item_id` AND b.`user_id` = p_user
AND `vote` = 1
GROUP BY b.`user_id`;
Затем я использую настраиваемый модуль с php-кодом следующим образом:
require JModuleHelper::getLayoutPath('mod_helloworld');
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$user =& JFactory::getUser();
//display user name and user id
echo "<p>Your name is {$user->name} and your userid is {$user->id}</p>";
//get logged in user id to put into procedure call
$userval = $user->id;
//create query call to procedure
$query = "CALL blogvote($userval);";
$db->setQuery($query);
// $result = $db->query();
//print_r($result);
$row = $db->loadObjectList('user_id');
print_r($row);
require JModuleHelper::getLayoutPath('mod_helloworld');
Теперь он работает - то есть я получаю понравившиеся и точки для зарегистрированного пользователя. Я хотел бы отформатировать его как таблицу - более или менее, как у меня есть вывод на phpmyadmin
Likes Points
3 0
И теперь я получаю что-то вроде этого:
Array ( [] => stdClass Object ( [POINTS] => 0 [LIKES] => 3 ) )
Как я могу получить правильное форматирование, если это возможно, из файла модуля php?
Я попробовал несколько советов, которые были опубликованы в комментариях. Прямо сейчас я могу отображать user_id в таблице, но запрос $ result создает пустую строку:
echo "<table>";
echo "<tr>";
echo "<td>Name</td>";
echo "<td>".$userval."</td>";
echo "</tr>";
echo "</table>";
foreach ($row as $result)
{
echo "<table>";
echo "<tr>";
echo "<td>" . $result->points . "</td>";
echo "<td>" . $result->likes . "</td>";
echo "</tr>";
echo "</table>";
}
1 ответ
Вы можете отобразить результаты в таблице и использовать цикл foreach
для фактических результатов, например:
<table>
<thead>
<tr>
<th>Points</th>
<th>Likes</th>
</tr>
</thead>
<tbody>
<?php
foreach ($row as $result)
{
echo '<tr>';
echo '<td>' . $result->POINTS. '</td>';
echo '<td>' . $result->LIKES . '</td>';
echo '</tr>';
}
?>
</tbody>
</table>