PHP: Fonction qui renvoie le résultat d'une requête à la BDD. [Résolu/Fermé]

Signaler
-
Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
-
Bonjour,

Je suis débutant en PHP et j'essaie de programmer suivant le modèle MVC.
Dans mon cas je veux juste créer une fonction qui fait une requête à ma base de données et en renvoie le résultat.
Je me connecte à la base de données en utilisant,
$bdd = new PDO('mysql:host=localhost;dbname=FranceCricket', 'root', 'root');

Ma fonction:
function getPlayers()
{
global $bdd;
return $bdd->query('SELECT nom FROM personne');
}

Je veux ensuite récupérer des infos de la requête.

$result=getPlayers() or die('Erreur');
$donnees=$result->fetch() or die('Erreur');
echo $donnees['nom'];
$result->closeCursor();

Mais bizarrement la fonction ne semble rien renvoyer. (car si je remplace getPlayers() par le code de la fonction évidemment cela fonctionne).

Ca fait un petit moment que je me creuse la tête sans réussir à comprendre où est mon erreur!

Merci d'avance de votre aide,

Jack

11 réponses

Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
2
ta fonction est dans un fichier a part ?
si oui :
rajoute require_once('function.php');
Messages postés
5
Date d'inscription
mercredi 27 février 2013
Statut
Membre
Dernière intervention
28 février 2013

Tout d'abord, merci de ta réponse. Effectivement la fonction est dans un fichier à part j'avais oublié de le préciser mais j'avais déjà écrit la commande: require_once('function.php'); (en fait j'avais mis include_once, j'ai changé mais ca ne marche toujours pas.
Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
2
essaye ceci
j'ai divisé le code comme tu peut le voir

<?php 
// connexion au serveur
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=FranceCricket', 'root', 'root');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
?>


<?php 
include('connexion.php'); // connexion à la BDD
// function getPlayers
function getPlayers() {
	$res = $bdd->query('SELECT nom FROM personne');
	$data = $res->fetch();
	return $data;	
}

?>
<?php
// page d'index
include('connexion.php'); // connexion à la BDD
require_once('function.php');
echo $data['nom'];
?>
Messages postés
5
Date d'inscription
mercredi 27 février 2013
Statut
Membre
Dernière intervention
28 février 2013

ca marche toujours pas :( (désolé je suis vraiment assez nul)
en fait j'ai 4 fichiers, j'ai un fichier global qui ouvre la connexion au serveur puis qui lance le contrôleur, pour l'instant et pour faire simple le temps que j'arrive à faire marcher les inclusions le contrôleur se contente d'afficher les données et j'inclus donc un fichier de la partie vue.
voila la définition de la fonction:
<?php
include_once('./modele/connexionBDD.php');
// Chercher liste membres
function getPlayers()
{
global $bdd;
$res= $bdd->query('SELECT nom FROM personne');
$data=$res->fetch();
return $data;
}
et je fais appel à la fonction dans le fichier de la partie "vue":

<DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
</head>
<title> Feuille de stat test</title>

Formulaire
<?php
require_once('/modele/index.php');
$result=getPlayers();
echo $result['nom'];
$result->closeCursor();
?>

Les choses fonctionnent si je remplace getPlayers par la requête... donc ca vient de la fonction getPlayers()...
Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
2
require_once('../modele/index.php'); essaye comme sa
include_once('../modele/connexionBDD.php');
Messages postés
5
Date d'inscription
mercredi 27 février 2013
Statut
Membre
Dernière intervention
28 février 2013

c'est pire là même le html qui définit le titre de la page ne marche plus ^^
Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
2
chelou sa ata donne moi 2min je vais cherché
ps: en PHP type MVC objet etc je suis pas fort non plus je découvre sa fait que 1 mois que je code en php pour te dire que tu n'est pas null ^^
Messages postés
5
Date d'inscription
mercredi 27 février 2013
Statut
Membre
Dernière intervention
28 février 2013

Alors je ne sais pas comment j'ai fait, mais ca marche maintenant ( je pense que dans d'autre include/require je n'avais pas respecté le format suivant:
require_once('./modele/index.php');
Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
2
j'allé justement t'écrire sa ^^ je venais de trouvé la réponse bravo a toi
Messages postés
5
Date d'inscription
mercredi 27 février 2013
Statut
Membre
Dernière intervention
28 février 2013

merci de ton aide ^^

Je n'hésiterais à reposter sur le forum si j'ai d'autre problèmes, ce qui risque fort d'arriver.
Messages postés
68
Date d'inscription
dimanche 24 février 2013
Statut
Membre
Dernière intervention
21 janvier 2015
2
np je suis la de toute façon