Je dois faire une application en utilisant Smarty.
Je me suis basé sur ce tutoriel : http://sdz.tdct.org/sdz/un-moteur-de-te ... marty.html
Voici le code utilisé pour la connexion à la base de donnée.
<?php
$PARAM_hote='localhost'; // le chemin vers le serveur
$PARAM_port='3306';
$PARAM_nom_bd='intranet'; // le nom de votre base de données
$PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter
$PARAM_mot_passe='info60'; // mot de passe de l'utilisateur pour se connecter
try
{
$connexion =new PDO('mysql:host='. $PARAM_hote .'; dbname='.$PARAM_nom_bd.'; charset=utf8', ''.$PARAM_utilisateur.'', ''.$PARAM_mot_passe.'');
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
}
catch(Exception $e)
{
echo 'Une erreur est survenue !';
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
die();
}
?>
Le fichier PHP
<?php
include "../include/connection_bdd.inc.php";
// Inclure la librairie smarty
require_once('../smarty3.1.33/libs/Smarty.class.php');
// Extraction des informations
$query = $connexion->prepare("SELECT * FROM news ORDER BY id DESC");
$query->execute();
$list_news = array();
$i = 0;
while($data = $query->fetch()){
$list_news[$i]['id'] = $data['id'];
$list_news[$i]['titre'] = $data['titre'];
$list_news[$i]['date'] = $data['date'];
$list_news[$i]['content'] = $data['contenu'];
$i++;
}
// On lance Smarty
$tpl = new Smarty();
$tpl->assign('list_news', $list_news);
$tpl->display("news.html");
?>
Le template
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur mon site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1> Mon super système de news </h1>
{foreach from=$list_news item=news}
<strong>{$news.titre}</strong> écrit le {$news.date|date_format:"%d/%m/%Y"}<br />
{$news.content}<br /><br />
{/foreach}
</body>
</html>
Je me retrouve avec un objet que je veux insérer dans un tableau d'ou le message d'erreur suivant :
En PHP classique, je travaille comme ça :Fatal error: Uncaught Error: Cannot use object of type stdClass as array in C:\wamp64\www\intranet\news.php on line 15
$requete = "SELECT DISTINCT(bureau), code_bureau FROM agents WHERE code_org = '" . $_SESSION['trombi_org'] . "' AND (`date_sortie` = '0000-00-00' OR DATE(NOW()) < date_sortie OR `date_sortie` IS NULL ) GROUP BY code_bureau ORDER BY bureau";
$resultats=$connexion->query("$requete");
$resultats->setFetchMode(PDO::FETCH_OBJ);
while( $ligne = $resultats->fetch() )
{
echo '<A HREF="' . $_SERVER['PHP_SELF'] . '?org='. $_GET['org'] .'&code_bur=' . $ligne->code_bureau . '">' . $ligne->bureau . '</a> ';
}
C'est mon fichier de connexion à la base de données qui pose problème ou le tuto qui n'est pas bon ?Merci pour vos réponses.