C'est peut-être quelque chose de simple, mais je continue d'essayer et je ne peux pas le faire. J'utilise Joomla 3 avec un backend mysql qui a une procédure personnalisée (blogvote (i int)) qui renvoie les votes et attribue les points en fonction du vote - il s'agit en gros d'un code simple comme celui-ci:
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`;
Ensuite, j'utilise un module personnalisé avec du code php comme ceci:
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');
Cela fonctionne maintenant - c’est-à-dire que je reçois les goûts et les points d’un utilisateur connecté. Je voudrais le formater comme un tableau - plus ou moins comme j'ai la sortie sur phpmyadmin
Aime les points
3 0
Et maintenant je reçois quelque chose comme ça:
Array ( [] => stdClass Object ( [POINTS] => 0 [LIKES] => 3 ) )
Comment puis-je obtenir un formatage correct si possible à partir d'un fichier de module php?
J'ai essayé un conseil qui a été posté dans les commentaires. Je peux maintenant afficher user_id dans une table, mais la requête $ result produit une ligne vide:
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>";
}
Vous pouvez afficher les résultats dans une table et utiliser une boucle foreach
pour les résultats réels, comme suit:
<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>