web-dev-qa-db-fra.com

Créer un Joomla Datagrid

Je viens d'un .NET arrière-plan où vous pouvez créer des grilles avec des en-têtes et des données en colonnes/lignes pour afficher facilement vos données. Existe-t-il une extension Joomla pouvant faire la même chose? Je veux interroger MySQL et faire en sorte que les résultats de la requête soient renvoyés à la page dans un format similaire à celui présenté ci-dessous (des colonnes différentes peuvent être plus ou moins différentes)

Nom --- ID --- Age
A --- 1 ---- 12
B --- 2 ---- 13
C --- 3 ---- 22

4

Pour interroger la base de données, vous pouvez utiliser les éléments suivants:

$db = JFactory::getDbo();

$query = $db->getQuery(true);

$query->select($db->quoteName(array('id', 'name', 'age')))
      ->from($db->quoteName('#__table')); 

$db->setQuery($query);

$results = $db->loadObjectList();

$results est maintenant votre variable qui contient un objet de résultats.

Note: Si vous voulez obtenir toutes les données de toutes les colonnes, remplacez alors:

$query->select($db->quoteName(array('id', 'name', 'age')))

avec:

$query->select(array('*'))

Vous pouvez ensuite ajouter une boucle foreach et construire votre table:

<table>
    <tr>
        <th>Name</th>
        <th>Id</th>
        <th>Age</th>
    </tr>
    <?php 
        foreach ($results as $row)
        {
            echo '<tr>';
            echo '<td>' . $row->name . '</td>';
            echo '<td>' . $row->id . '</td>';
            echo '<td>' . $row->age . '</td>';
            echo '</tr>';
        }
    ?>  
</table>
3
Lodder

Comme alternative à la réponse de Lodder, une autre option consiste à utiliser une extension tierce telle que ChronoConnectivity (gratuite) ou Modification de rapports (payante) ou similaire, pour vous aider à formuler votre requête. et affichez les résultats dans le front-end.

2
Neil Robertson