Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2008, 15h54   #1
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Par défaut Afficher tous les enregistrements

Bonjour avant de construire une class pour utiliser PDO selon mes besoins, il faut que je sache l'utiliser convenablement.
J'ai donc créer un plugin smarty afin de traiter un petit module de news.
Le problème c'est que je n'arrive pas a faire une boucle convenable sur les news récupérer.
Par exemple mon foreach n'affiche que la dernière valeur de mon tableau que cela soit avec n'importe quel paramètre, c'est assez déroutant surtout lorsque l'ont commence a utiliser PDO.
J'ai du mal a utiliser certaine fonction tel que fetch ou fetchAll, j'ai beau regarder la documentation cela ne rentre pas ou du moins la mise en oeuvre n'est pas correct.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
function smarty_function_newsmodule($params, &$smarty)
{
	$dbh = new PDO('mysql:host=localhost;dbname=*****','*****','******');
	$stmt = $dbh->prepare("SELECT * FROM db_news");
	//$stmt = $dbh->prepare("SELECT DISTINCT sujet FROM db_news");
	$stmt->execute();
	//$result = $stmt->fetch(PDO::FETCH_ASSOC);
		/*foreach($result as $row => $item) {
			$news = '<p>'."$row => $item".'</p>'."\n";
		}*/
	print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
	//return $news;
}
?>
Si je fais print_r :
Citation:
Array ( [0] => Array ( [id_news] => 1 [sujet] => premi�re news [texte] => Ceci est une premi�re news. In commodo, neque sit amet laoreet accumsan, neque velit rutrum augue, a fringilla nibh lorem nec est. Cras eleifend eros. Sed vehicula. Donec vel enim at nunc tincidunt pellentesque. Donec malesuada. Praesent volutpat orci ut leo. Donec dictum tortor quis odio. Aliquam pulvinar justo eu eros. [news_date] => 2006-01-15 ) [1] => Array ( [id_news] => 2 [sujet] => Lorem Ipsum [texte] => Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse enim elit, luctus in, rhoncus quis, facilisis in, nulla. Nam eu dolor vel erat semper porta. Phasellus pellentesque nulla a urna. Phasellus nonummy diam id risus. Donec faucibus mi sed nisi. Sed et lectus at ligula scelerisque tempus. Proin justo nibh, consectetuer porta, accumsan ac, consectetuer id, dui. Morbi at mi auctor urna elementum convallis. Etiam et massa porta risus imperdiet ullamcorper. Aenean a metus at tortor ultrices accumsan. Mauris luctus. [news_date] => 0000-00-00 ) )
Pourriez-vous me dire ou je me suis planter et il me semble que les caractère UTF8 ne sont pas bien afficher alors que ma page est bien en UTF8 ainsi que la base de donnée en "général_ci"
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 00h25   #2
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Bon après plusieurs test, j'arrive a afficher un enregistrement, le problème c'est qu'il faut que je les affiche tous.
Mon print_r retourne bien tous le tableau mais comment afficher tous les enregistrements ??? j'ai tout essayé
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
try{
	$dbh = new PDO('mysql:host=localhost;dbname=*****','*****','******');
	$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	$stmt = $dbh->prepare("SELECT * FROM db_news");
	//$stmt = $dbh->prepare("SELECT DISTINCT sujet FROM db_news");
	$stmt->setFetchMode(PDO::FETCH_ASSOC);
	$stmt->execute();
	$result = array_merge($stmt->fetchAll());
	} catch(Exception $e) {
			echo ("Erreur ! : " . $e->getMessage() . "<br/>");
			echo 'N° : '.$e->getCode();
		}
		//print_r($result);
		foreach($result as $row => $item) {
			$news = '<div style="float:right;margin-right:80px;">'.$item['news_date'].'</div>';
			$news .= '<h3 style="margin-left:20px;">'.$item['sujet'].'</h3>';
			$news .= '<p>'.$item['texte'].'</p>'."\n";
		}
		return  $news;
Mon tableau ressemble a ceci :
Code :
Array ( [0] => Array ( [id_news] => 1 [sujet] => premi&#65533;re news [texte] => Ceci est une premi&#65533;re news. In commodo, neque sit amet laoreet accumsan, neque velit rutrum augue, a fringilla nibh lorem nec est. Cras eleifend eros. Sed vehicula. Donec vel enim at nunc tincidunt pellentesque. Donec malesuada. Praesent volutpat orci ut leo. Donec dictum tortor quis odio. Aliquam pulvinar justo eu eros. [news_date] => 2006-01-15 ) [1] => Array ( [id_news] => 2 [sujet] => Lorem Ipsum [texte] => Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse enim elit, luctus in, rhoncus quis, facilisis in, nulla. Nam eu dolor vel erat semper porta. Phasellus pellentesque nulla a urna. Phasellus nonummy diam id risus. Donec faucibus mi sed nisi. Sed et lectus at ligula scelerisque tempus. Proin justo nibh, consectetuer porta, accumsan ac, consectetuer id, dui. Morbi at mi auctor urna elementum convallis. Etiam et massa porta risus imperdiet ullamcorper. Aenean a metus at tortor ultrices accumsan. Mauris luctus. [news_date] => 0000-00-00 ) )
Seulement le 2em enregistrement est afficher, quel fonction dois-je utiliser ?
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h59.


 
 
 
 
Partenaires

Hébergement Web