IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Afficher tous les enregistrements [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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"

  2. #2
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ) )
    Seulement le 2em enregistrement est afficher, quel fonction dois-je utiliser ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher tous les enregistrements
    Par MORPHEUS50 dans le forum Access
    Réponses: 5
    Dernier message: 30/06/2007, 11h07
  2. afficher tous les enregistrements
    Par MORPHEUS50 dans le forum IHM
    Réponses: 7
    Dernier message: 26/06/2007, 16h29
  3. [MySQL] afficher tous les enregistrements sélectionnés par checkbox
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/03/2007, 12h28
  4. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 08h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo