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>";
    }
2 голоса | спросил aretai 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 27 Sep 2015 20:33:58 +0300 2015, 20:33:58

1 ответ


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>
ответил Lodder 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 27 Sep 2015 21:17:44 +0300 2015, 21:17:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132