Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Effectuer une requête vers la base de données
#1
créer une balise utilisateur (extension=>balise Utilisateur)
Code :
echo '<table>
<caption>test BD</caption>';
echo '<thead><tr>';
echo "<th>content id</th>";
echo "<th>alias</th>";
echo "</tr></thead>";
global $gCms; //pour pouvoir travailler avec les objets, classes et méthodes du cms
$db = &$gCms->GetDb(); //connection à la bd cms
$query = "SELECT * FROM cms_content WHERE content_id >1 AND type = 'content' ORDER BY parent_id ";
$dbresult = &$db->Execute($query);//exécution de la requête
    while ($dbresult && !$dbresult->EOF)
    {
$resultChamps1 = $dbresult->fields['content_name'];
$resultChamps2 = $dbresult->fields['content_alias'];
echo <<<REQUETE
<tr>
<td>{$resultChamps1}</td>
<td>{$resultChamps2}</td>
</tr>
REQUETE;
    $dbresult->MoveNext();//enregistrement suivant
}//tous les enregistrements sont dans des tableaux
if ($dbresult) $dbresult->Close();//on ferme la connection
echo "</table>";
Si vous avez nommé cette balise "select", vous n'avez plus qu'à insérer {select} dans la page où vous désirez voir apparaître le tableau avec le résultat.
Cela devrait vous donner un tableau avec le nom de chacun de vos content ainsi que l'alias de page correspondant.
Vous n'avez plus qu'à modifier votre requête pour qu'elle corresponde à vos désirs.
Note :
Code :
echo <<<REQUETE
<tr>
<td>{$resultChamps1}</td>
<td>{$resultChamps2}</td>
</tr>
REQUETE;
c'est la syntaxe heredoc, très pratique pour ne pas s'ennuyer avec les apostrophes et raccourcir le code. Voir http://www.manuelphp.com/php/language.ty...eredoc.php
Et pour un INSERT :
Code :
global $gCms;
$db = &$gCms->GetDb();
$query = "INSERT INTO nomTable (champs1, champs2, ...) VALUES ('$variable1', 'variable2')";
$db->Execute($query);
Vous pouvez bien sûr utiliser une autre table que cms_content, il est d'ailleurs très pratique d'ajouter vos tables perso dans la bd de cms. Vous n'aurez ainsi jamais besoin de vous demander comment vous y connecter.
Have fun Smile
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)