Fatal error: Call to a member function query() on a non-object [Résolu/Fermé]

Signaler
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
-
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
-
Bonjour,

J'ai cette erreur : Fatal error: Call to a member function query() on a non-object in /homepages/30/d585094664/htdocs/panel/discu/recup_msg.php on line 5

<?php
	include($_SERVER['DOCUMENT_ROOT']."/panel/includes/bdd.php");
	
	$query=$bdd->query("SELECT instant_messages.message_membre, users.pseudo FROM instant_messages JOIN users ON users.id = instant_messages.id_membre ORDER BY temps ASC");
	while($message=$query->fetch())
	{
		echo "<a href=''>".$message['pseudo']."</a>";
		echo "<p>".$message['message_membre']."</p>";
	}
	/*$messages=$query->fetchall();
	
	foreach($messages as $message)
	{
		echo "<a href=''>".$message['pseudo']."</a>";
		echo "<p>".$message['message_membre']."</p>";
	}*/

/*
SELECT users.pseudo, instant_messages.message_membre FROM instant_messages 
	JOIN users ON users.id = instant_messages.id_membre ORDER BY temps ASC
	
/*	
	"
	SELECT instant_messages.id_membre, instant_messages.message_membre, 
	users.id, users.pseudo FROM instant_messages 
	JOIN users ON users.id=instant_messages.id_membre ORDER BY temps DESC"*/
	$query->CloseCursor();?>


Merci d'avance ;)
A voir également:

3 réponses

Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
8
Je vous remercie pour vos conseils détaillés. Il s'avère qu'un de mes collègues a modifié le fichier sous un autre nom, voilà pourquoi x)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
24
Tu as testé la requête dans ton phpMyAdmin? Elle fonctionne ?
Messages postés
31120
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 201
Bonjour,

Le souci semble venir de ta variable $bdd

Peux tu nous montrer le contenu de ton fichier /bdd.php ?

Et aussi .. change le "include" .. par un "require_once"
Si ça se trouve.. c'est qu'il ne trouve pas le chemin vers ton fichier /bdd.php justement !
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
8
j'ai un dossier sql avec chat.sql c'st celui ci ?
Messages postés
31120
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 201 >
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020

NON !

Ta ligne de code
$query=$bdd->query("SELECT instant_messages.message_membre, users.pseudo FROM instant_messages JOIN users ON users.id = instant_messages.id_membre ORDER BY temps ASC");
	

Ne peut fonctionner QUE si la variable $bdd contient un objet de connexion à ta BDD.

Cette variable est , normalement, initialisée dans un fichier qui se nomme bdd.php.

En regardant le code que tu nous a posté au début ... on voit que tu essayes de faire un include de ce fichier ...
(via la ligne de code :
include($_SERVER['DOCUMENT_ROOT']."/panel/includes/bdd.php");
)

Donc ..... QUE CONTIENT CE FICHIER ?????
Ce fichier est-il bien présent sur ton SERVEUR ?????

Et également....
REMPLACES le mont INCLUDE PAR REQUIRE_ONCE
ce qui donne :
require_once($_SERVER['DOCUMENT_ROOT']."/panel/includes/bdd.php");

et donc.. cela devrait t'afficher une erreur si le fichier n'est pas trouvé !!!!!!


Ce n'est pas compliqué à comprendre .... si ??
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
8
j'obtiens :
Fatal error: require_once(): Failed opening required '/kunden/homepages/30/d585094664/htdocs/panel/includes/bdd.php' (include_path='.:/usr/lib/php5.5') in /homepages/30/d585094664/htdocs/panel/discu/recup_msg.php on line 3

je n'ai aucun fichier bdd.php mais je fais une connexion à ma bdd avec phpmyadmin avec certitude.
Messages postés
31120
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 201 >
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020


mais je fais une connexion à ma bdd avec phpmyadmin avec certitude.

Je suis content pour toi ... mais le fait de réussir à se connecter manuellement à phpmyadmin n'aidera pas ton script PHP à s'y connecter !

je n'ai aucun fichier bdd.php

Donc c'est normal que tu aies ces messages d'erreur.... et que ton code ne fonctionne pas !

Ce fichier DOIT être présent ... et doit contenir les infos de connexion à ta BDD !
....et puis.... Ce n'est pas comme si on en avait déjà parlé lors de 850 messages que nous avons échangé lors de tes précédentes questions ...... :-(
Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
24
require_once($_SERVER['DOCUMENT_ROOT']."/panel/includes/bdd.php");


Cette ligne veut clairement dire que dans le dossier :
$_SERVER['DOCUMENT_ROOT'] (soit la racine sous laquelle le script courant est exécuté), il y a un dossier panel, dans lequel il y a un dossier includes dans lequel il y a un fichier bdd.php.

C'est grâce à cela que tu peux utiliser $bdd->query.
Tu est d'accord que sinon ton $bdd sort de nulle part, non?
Donc il sort de là.

Mais il manque certainement un
$bdd = new NomDeMaClasse(); // par exemple


Donc nous avons besoin de voir comment est fait le fichier bdd.php.
Grâce à la 1ère ligne de code de ce message nous sommes certains qu'il existe.
Tu fais une connexion à ta base par ce fichier et tu refuses de penser qu'il existe?

Si tu as du mal à comprendre cela, c'est que tu as raté une grande partie des bases de PHP, auquel cas je me permet de te conseiller de reprendre un peu ces bases avant de te replonger dans ton énorme projet.

Il ne te suffira pas de coller la totalité des messages d'erreurs sur le forum et attendre que nous les résolvions pour progresser.

Et il est très difficile de répondre correctement à quelqu'un qui ne maîtrise pas du tout le code qu'il utilise.