PHP: Fonction qui renvoie le résultat d'une requête à la BDD.
Résolu
nini
-
xander18 Messages postés 68 Date d'inscription Statut Membre Dernière intervention -
xander18 Messages postés 68 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- PHP: Fonction qui renvoie le résultat d'une requête à la BDD.
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
11 réponses
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.
essaye ceci
j'ai divisé le code comme tu peut le voir
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']; ?>
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()...
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()...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ^^
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 ^^
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');
require_once('./modele/index.php');