Problème récupérer requete pdo a partir d'une fonction

Fermé
Vlandy Messages postés 19 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 28 mai 2013 - 23 févr. 2013 à 14:26
Vlandy Messages postés 19 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 28 mai 2013 - 23 févr. 2013 à 15:47
Salut a tous,

J'essaye de récupérer la liste de tout les membres inscrits sur mon site et pour l'instant j'y arrive mais j'aimerais pouvoir changer ma méthode, je vous explique.

Pour récupérer les membres inscris j'utilise directement dans mon liste_membre.php ce bout de code:

$bdd = new PDO('mysql:host=localhost;dbname=bddtest', 'root', '') or die(print_r($bdd->errorInfo()));
  
$resultats=$bdd->query("SELECT login FROM membres ORDER BY login ASC"); 
$resultats->setFetchMode(PDO::FETCH_OBJ); 
while( $ligne = $resultats->fetch() ) 
{
        echo 'Utilisateur : '.$ligne->login.'<br />'; 
}
$resultats->closeCursor(); 


il marche parfaitement je n'est aucun problème mais pour pouvoir alléger mon code sur liste_membre.php , j'aimerais inclure ce petit bout de code dans un fonction.php pour ensuite inclure cette fonction dans liste_membre.php. Et c'est ici que les ennuies commence..

voici mon nouveau fonction.php:

function list_membre()
{
require('config/connect.php'); // connection a ma BDD
$resultats=$bdd->query("SELECT login FROM membres ORDER BY login ASC");
$resultats->setFetchMode(PDO::FETCH_OBJ);
 while( $ligne = $resultats->fetch() )
$resultat->closeCursor();
}


insertion de la fonction dans ma liste_membre.php:


<?php
function list_membre()
{
 echo 'Utilisateur : '.$ligne->login.'<br />'; 

}
?>



Le résultat est que plus rien ne s'affiche dans ma liste des membres...

merci d'avance pour votre aide
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 23/02/2013 à 15:05
ce n'est pas tout à fait comme cela que l'on utilise une fonction:
<?php 
function list_membres(){ 
 $bdd = new PDO('mysql:host=localhost;dbname=bddtest', 'root', '') or die(print_r($bdd->errorInfo())); 
    
 $resultats=$bdd->query("SELECT login FROM membres ORDER BY login ASC");  
 $resultats->setFetchMode(PDO::FETCH_OBJ);  
 while( $ligne = $resultats->fetch() )  
 { 
   echo 'Utilisateur : '.$ligne->login.'<br />';  
 } 
 $resultats->closeCursor();  

} 

//on lance tout simplement la fonction ainsi à l'endroit de ta page où tu souhaite l'affichage 
//l'affichage des résultats est intégré dans la fonction 
     list_membres(); 


///// OU autre solution la fonction retourne le contenu de $resultats et on fait l'affichage en dehors de la fct /// 

function list_membres($bdd){    
 $resultats=$bdd->query("SELECT login FROM membres ORDER BY login ASC");  
 $resultats->setFetchMode(PDO::FETCH_OBJ);  
 return $resultats; 
} 

//dans ta page 
$bdd = new PDO('mysql:host=localhost;dbname=bddtest', 'root', '') or die(print_r($bdd->errorInfo())); 
//on lance a fonction pour avoir le résultat de la requette 

$retour_fct=list_membres($bdd); 
//affichage 
while( $ligne = $retour_fct->fetch() )  
 { 
   echo 'Utilisateur : '.$ligne->login.'<br />';  
 } 
   $retour_fct->closeCursor();  // ??
0
Vlandy Messages postés 19 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 28 mai 2013
23 févr. 2013 à 15:47
Salut Alain décidément tu m'est une nouvelle fois d'une grande aide. tout fonctionne parfaitement grâce a toi. merci encore pour tes précieux conseils !

passez une bonne journée!
0