PHP: Fonction qui renvoie le résultat d'une requête à la BDD.

Résolu/Fermé
nini - Modifié par nini le 27/02/2013 à 22:54
xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 - 28 févr. 2013 à 00:33
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

xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 2
27 févr. 2013 à 23:43
ta fonction est dans un fichier a part ?
si oui :
rajoute require_once('function.php');
0
ninilegrand Messages postés 5 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 28 février 2013
27 févr. 2013 à 23:50
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.
0
xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 2
28 févr. 2013 à 00:00
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'];
?>
0
ninilegrand Messages postés 5 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 28 février 2013
28 févr. 2013 à 00:17
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()...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 2
Modifié par xander18 le 28/02/2013 à 00:20
require_once('../modele/index.php'); essaye comme sa
include_once('../modele/connexionBDD.php');
0
ninilegrand Messages postés 5 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 28 février 2013
28 févr. 2013 à 00:23
c'est pire là même le html qui définit le titre de la page ne marche plus ^^
0
xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 2
28 févr. 2013 à 00:26
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 ^^
0
ninilegrand Messages postés 5 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 28 février 2013
28 févr. 2013 à 00:29
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');
0
xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 2
28 févr. 2013 à 00:31
j'allé justement t'écrire sa ^^ je venais de trouvé la réponse bravo a toi
0
ninilegrand Messages postés 5 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 28 février 2013
28 févr. 2013 à 00:33
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.
0
xander18 Messages postés 68 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 21 janvier 2015 2
28 févr. 2013 à 00:33
np je suis la de toute façon
0