Message erreur notice

labourette Messages postés 670 Statut Membre -  
labourette Messages postés 670 Statut Membre -
Bonjour,

Je suis dans l'impasse totale, pouvez-vous me donner un coup de main s'il vous plait.
Je récupére de ma BDD les nom et prénom des membres pour leurs souhaiter un bon anniversaire.
Voilà les 2 erreurs que j'ai...

Notice: Undefined variable: connexion in D:\wamp\www\cliquedecruetsite\fonction\fonction.php on line 11

Fatal error: Call to a member function query() on a non-object in D:\wamp\www\cliquedecruetsite\fonction\fonction.php on line 11

et ma fonction
[code]
<?php
// Affiche bon anniversaire d'un membre sur la page d'accueil
function anniversaire () {
$date_jour = date('d');
$date_mois = date('n');
$tab_mois = Array ('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
$mois = $tab_mois [$date_mois -1] ;
$date = "$date_jour $mois";
// On récupére tous les utilisateurs avec leurs dates de naissance
$reponse = $connexion->query("SELECT nom, prenom
FROM utilisateur
WHERE naissance LIKE '$date %');
// On affiche cette variable vide pour ne pas afficher "bon anniversaire " si il n'y a pas de membre né ce jour là
$anniversaire ="";
// Avec cette boucle on liste dans un tableau tous les nom et prénom
while (list($nom, $prenom) = $reponse->fetch()) {
// On affiche les anniversaires des membres
$anniversaire .= " <br/>".$prenom." ".$nom;
}
return $anniversaire ;
}
?>
/code
et dans ma page accueil
[code]
<?php
// On cré une variable "$anniv" pour récupérer la fonction "anniversaire"
$anniv=anniversaire();
// Si la variable "$anniv" n'est pas vide, c'est à dire qu'il existe un membre né ce jour là qu'on à récupéré via la fonction PHP
if (!empty($anniv)) {
// Alors on affiche "Bon anniversaire "
echo '<div id="bon_anniversaire">Bon anniversaire à : </div><br/>'.$anniv;
}
?>
/code
Merci de votre aide.

A voir également:

13 réponses

Utilisateur anonyme
 
la premiere
c'est que la variable $connexion n'existe pas

en fait, cette variable est un objet qui represente la connexion a la base de donnée mysql

tu doi ra jouter dans ton code PHP, tout au debut :

$connexion = new PDO('mysql:host=localhost;dbname=database', 'user', 'pass');

remplace les mots en gras respectivement par
le nom de la base de donnée
ton nom d'utilisateur
et ton mot de passe

et la deuxieme erreur se reglera d'elle meme car la connexion sera initialisée
0
labourette Messages postés 670 Statut Membre 6
 
Bonjour et merci pour ta réponse,

J'ai bien compris tes explications mais malheureusement j'essaie mais en vain...

En fait une question ma variable $connexion est bien initialisé dans mon fichier connexion.php étant donné que j'ai fait des includes de se fichier pour toutes mes pages.
Tu peux encore me donner des explications car j'ai essayé mais rien ne change.
Merci
Voici mon fichier connexion.php
[code]
<?php
//Parametres de configuration
$PARAM_hote ='localhost'; // nom du serveur mysql
$PARAM_nom_bd ='nom_de_ma_base'; // le nom de la base de données
$PARAM_port ='3306'; // Le port
$PARAM_utilisateur ='root'; // login
$PARAM_mot_passe =''; // mot de passe de l'utilisateur pour se connecter

// ---------------- FIN DE LA CONFIGURATION ---------------- //

try
{
//connexion à la BDD
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';port=' . $PARAM_port . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
}

catch(Exception $e)
{
//sinon on affiche l'erreur
echo 'Erreur : ' . $e->getMessage() . '<br />';
echo 'N° : ' . $e->getCode();
}
?>
/code
0
Utilisateur anonyme
 
et tu utilise quoi pour ton systeme

est-il en local grace a un logiciel comme WAMP ou XAMP ou autre
si oui
verifie dans la config que php_pdo_mysql est actif
0
labourette Messages postés 670 Statut Membre 6
 
Bonjour et encore merci,
oui la fonction php_pdo-mysql est bien active dans les extensions PHP.

Pour l'instant mon site est en préparation et je suis en local, je commence seulement et déjà ce message alors que j'ai fait ma page de connexion pour les membres et celle-ci fonctionne.Alors si tu peux encore m'aider tu es le bienvenu et je te remercie.
Cordialement
0

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

Posez votre question
Utilisateur anonyme
 
il y a forcément un probleme au niveau de l'objet de connexion a la BDD

verifie que le fichier ou tu definit les parametres est correctement inclu
0
labourette Messages postés 670 Statut Membre 6
 
Bonjour,
Vraiment je ne comprend pas d'où cette erreur peux venir j'ai vraiment bien analyser mes pages mais je doit passer à côté de quelques choses, mais quoi je ne sais pas.
Je t'envoie quand même mes pages elles ne sont pas longues et mes erreur viennent de ma fonction.Je voudrais afficher sur la page accueil les anniverssaires des membres du jour si il en a bien sur.
Merci beaucoup si tu peux y jeter un coup d'oeil, si tu as le temps.

page accueil.php

[code]
<h2>Accueil</h2>

<div id="date_accueil" style="float: right; ">

<script language="javascript">
Date_accueil () ;
</script>

</div>

<?php
// On cré une variable "$anniv" pour récupérer la fonction "anniversaire"
$anniv=anniversaire();
// Si la variable "$anniv" n'est pas vide, c'est à dire qu'il existe un membre né ce jour là qu'on à récupéré via la fonction PHP
if (!empty($anniv)) {
// Alors on affiche "Bon anniversaire "
echo '<div id="bon_anniversaire">Bon anniversaire à : </div><br/>'.$anniv;
}
?>
/code
0
labourette Messages postés 670 Statut Membre 6
 
page fonction.php

[code]
<?php
// Affiche bon anniversaire d'un membre sur la page d'accueil
function anniversaire () {
$date_jour = date('d');
$date_mois = date('n');
$tab_mois = Array ('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
$mois = $tab_mois [$date_mois -1] ;
$date = "$date_jour $mois";
// On récupére tous les utilisateurs avec leurs dates de naissance
$reponse = $connexion->query("SELECT nom, prenom
FROM utilisateur
WHERE naissance
LIKE '$date %'
AND 'utilisateur'.'membre' <> 'sortant'
AND 'utilisateur'.'membre' <> 'non_musicien' ");
// On affiche cette variable vide pour ne pas afficher "bon anniversaire " si il n'y a pas de mambre né ce jour là
$anniversaire ="";
// Avec cette boucle on liste dans un tableau tous les nom et prénom
while (list($nom, $prenom) = $reponse->fetch()) {
// On affiche les anniversaires des membres
$anniversaire .= " <br/>".$prenom." ".$nom;
}
return $anniversaire ;
}
?>
/code
0
labourette Messages postés 670 Statut Membre 6
 
page connexion.php

[code]
<?php
//Parametres de configuration
$PARAM_hote ='localhost'; // nom du serveur mysql
$PARAM_nom_bd ='nom_de_ma_base'; // le nom de la base de données
$PARAM_utilisateur ='root'; // login
$PARAM_mot_passe =''; // mot de passe de l'utilisateur pour se connecter

// ---------------- FIN DE LA CONFIGURATION ---------------- //

try
{
//connexion à la BDD
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
}

catch(Exception $e)
{
//sinon on affiche l'erreur
echo 'Erreur : ' . $e->getMessage() . '<br />';
echo 'N° : ' . $e->getCode();
}
?>
[/code]
0
labourette Messages postés 670 Statut Membre 6
 
et pour terminer ma page index.php

[code]
<?php session_start();?>

<?php
include('connexion.php');
include('fonction/fonction.php');
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><!--DEBUT DU FICHIER HTML-->
<head><!--DEBUT DE L'ENTETE-->
<!---indique au M. R. et au navigateur le codage utilisé pour ce fichier--->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!---définit la langue de cette page pour les moteur de recherche--->
<meta http-equiv="content-language" content="fr"/>

<script type="text/javascript" src="lib/jquery.js"></script> <!---Effets menu navigation--->
<script type="text/javascript" src="lib/jquery-1.2.6.js"></script> <!---Effets formulaire de connexion--->

<script type="text/javascript" src="fonction/fonction.js"></script>

<link rel="stylesheet" type="text/css" href="design/style.css"/>
<link rel="stylesheet" type="text/css" href="design/contact.css"/>
<link rel="stylesheet" type="text/css" href="design/menu.css"/>

<!---permet d'indiquer la description de cette page pour les M. R.--->
<meta name="description" content="animation fête au village cérémonie concert musique festivité"/>
<!---indique les mots clefs par ordre d'importance pour les M. R.--->
<meta name="keywords" content="batterie, fanfare, clique, musique, orchestre, instrument, clairon, cor,"/>
<!---permet de préciser le nom de l'auteur pour les moteurs de recherche--->
<meta name="author" content="clique de cruet"/>
<!---permet d'indiquer aux moteurs de recherche pour que notre site soit indexé--->
<meta name="robots" content="all"/>

<title>La Clique de Cruet</title>

</head>

<body> <!--DEBUT DU CORPS DU DOCUMENT-->

<?php
//si la valeur "body" de $_GET existe et est différent de NUL
//alors $corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher.
if (isset($_GET['body']) && $_GET['body'] != NULL)
$corps = "page/" . $_GET['body'] . ".php";
else
$corps = "page/accueil.php";
?>

<div id="global"><!-- #global -->

<div id="entete"><!-- #entete --><?php include ('entete.php');?></div>

<div id="sousentete"><!-- #sousentete --><?php include ('sousentete.php');?></div>

<div id="centre"><!-- #centre -->

<div id="navigation"><!-- #navigation --><?php include ('navigation.php');?></div>
<div id="contenu"><!-- #contenu --><?php include($corps);?></div>

</div>

</div>

</body>
</html>
/code
0
labourette Messages postés 670 Statut Membre 6
 
Et voici mes erreurs qui sont générées

Notice: Undefined variable: connexion in D:\wamp\www\nom_de_ma_base\fonction\fonction.php on line 10

Fatal error: Call to a member function query() on a non-object in D:\wamp\www\nom_de_ma_base\fonction\fonction.php on line 10
0
Utilisateur anonyme
 
tu as placer touts les fichiers de fonction dans le dossier "fonction"

mais lors de l'include de "connexion.php", celui ci n'est pas dans le dossier fonction
est-ce normal ?
0
labourette Messages postés 670 Statut Membre 6
 
Bonjour

Merci pour ta réponse, en fait j'ai fait une include de ma connexion de ma BDD dans mon fichier index.php et j'ai fait une include également de mon fichier fonction.php dans index.php.
Ca devrait suffir non ?
Mais je ne suis pas sur, si tu pourrai essayer de m'aider là je ne sais plus comment faire.
Pourtant ma variable connexion est bien déclarée dans mon fichier connexion.php et avec les includes de ma page index ça devrait être bon pourtant? car toutes mes pages sont includes.
Merci de ton aide
0
Utilisateur anonyme
 
if(!is_object($connexion)){echo'CONNEXION N EST PAS UN OBJET';}else{echo'OK';}

colle cette ligne de code au debut de ton fichier "fonction.php"
(juste apres la balise <?php )

essaye ta page et dit moi ce quelle affiche de plus que d'habitude
0
labourette Messages postés 670 Statut Membre 6
 
Bonjour et merci de ta réponse,

En fait j'ai simplement passer ma variable connexion en paramètre de la fonction anniversaire et ça marche.
Pourquoi j ne sais pas j'ai pas trop compris j'ai trouvé ça avec des recherches sur le net et ça fonctionne.
Encore merci de ton aide
0