Notice a la fonction

Résolu/Fermé
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014 - 27 nov. 2014 à 20:22
 Utilisateur anonyme - 27 nov. 2014 à 23:27
Bonjour,

	function LastPostedBy($id=0, $memberId=1)

	{

		global $pdo;



		$sql = "SELECT * FROM forum_post WHERE topic_id=" . intval($id) . " ORDER BY post_time DESC LIMIT 1";

		$q = $pdo->query($sql);

		

		$res = $q->fetch(PDO::FETCH_OBJ);

		$q->closeCursor();

		

		$pseudo = sex2color(id2sex($res->forum_membre_id),$res->forum_membre_id);

		

		return "par " . $pseudo . "<br />".format_temps($res->post_time);

	}






Notice: Trying to get property of non-object in /var/www/legtux.org/users/site/modules/forum/function.inc.php on line 102

Notice: Trying to get property of non-object in /var/www/legtux.org/users/site/modules/forum/function.inc.php on line 106


si qqun peut me corriger car là je ne sis pas p lobjet ne trouve pas


A voir également:

6 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
27 nov. 2014 à 20:41
As-tu essayé de voir ce que faisait la requête présente dans $sql dans PhpMyAdmin (ou équivalent) ?
0
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014
27 nov. 2014 à 20:54
coment je doit procéeder si tu peut maidé a faire disparaître ces notices
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
27 nov. 2014 à 21:00
echo $sql;

Puis dans PhpMyAdmin, tu pose la requête obtenue.
0
Utilisateur anonyme
27 nov. 2014 à 21:06
c'est juste pour voir si ta requete SQL est bien formée : )

Tu peux nous en faire profiter si tu veux

cdt
0
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014
27 nov. 2014 à 21:08
Profité de quo etant donée le code bug lol
0
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014
27 nov. 2014 à 21:06
j'ai mis l'echo ca done une autre notice

Notice: Undefined variable: sql in /var/www/legtux.org/users/site/modules/forum/function.inc.php on line 89
0
Utilisateur anonyme
27 nov. 2014 à 21:10
echo $sql = "SELECT * FROM forum_post WHERE topic_id=" . intval($id) . " ORDER BY post_time DESC LIMIT 1"; 
die();


dans ton code
0

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

Posez votre question
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014
27 nov. 2014 à 21:18
ca met

SELECT * FROM forum_post WHERE topic_id=0 ORDER BY post_time DESC LIMIT 1

il met topic id 0
0
Comme te le conseille notre ami NHenry utilise ce SELECT sur ta base avec PhpMyAdmin.et regarde ce que ca donne. Ta requête à l'air bien formée

perso je pense qu'en plaçant ton
 $q->closeCursor();
apres l'instanciation de $pseudo pourrait arranger les choses : )

tu pourrais aussi nous donner le code complet de function.inc.php ( en utilisant la balise <code> du forum ) ce serait plus facile ...

cdt
0
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014
27 nov. 2014 à 22:27
j'ai modifier la fonction,

 function LastPostedBy($id=0, $memberId=1)
 {
  global $pdo;
  $sql = "SELECT * FROM forum_post WHERE topic_id=" . intval($id) . " ORDER BY post_time DESC LIMIT 1";

  $q = $pdo->query($sql);

  $res = $q->fetch(PDO::FETCH_OBJ);
  $var = null;

  if($q->rowCount()) 
  {
   $pseudo = sex2color(id2sex($res->forum_membre_id),$res->forum_membre_id);
   $var = "par " . $pseudo . "<br />".format_temps($res->post_time);
  }
  $q->closeCursor();

 return $var ? $var : null;
 }



c'est bon les notices disparait

mais par contre ca m'a suprimer "$var = "par " . $pseudo . "<br />".format_temps($res->post_time);"

merci
0
Utilisateur anonyme
27 nov. 2014 à 22:35
Normal
if($q->rowCount() != 0)
sera une condition plus "acceptable" : )
0
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014
27 nov. 2014 à 22:46
ca ne marche pas
0
ok, pas de souci !

à la ligne 10 de ton code insere

echo $q->rowCount();
die();


qu'y a t-il d'indiqué ?
0
mathieu75012 Messages postés 12 Date d'inscription dimanche 16 novembre 2014 Statut Membre Dernière intervention 27 novembre 2014 > Utilisateur anonyme
27 nov. 2014 à 23:00
il met 0
0
cela signifie qu'aucune ligne de ta Bdd n'a été modifiée, la condition necessaire pour instancier $pseudo n'est pas satisfaite ce qui signifie que $var est égal à null.

$var est déja instanciée à null en ligne 9 donc ton return peut se simplifier en
return $var;
0