Notice a la fonction

Résolu
mathieu75012 Messages postés 12 Statut Membre -  
 Utilisateur anonyme -
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

6 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    As-tu essayé de voir ce que faisait la requête présente dans $sql dans PhpMyAdmin (ou équivalent) ?
    0
  2. mathieu75012 Messages postés 12 Statut Membre
     
    coment je doit procéeder si tu peut maidé a faire disparaître ces notices
    0
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      echo $sql;

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

      Tu peux nous en faire profiter si tu veux

      cdt
      0
    3. mathieu75012 Messages postés 12 Statut Membre
       
      Profité de quo etant donée le code bug lol
      0
  3. mathieu75012 Messages postés 12 Statut Membre
     
    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
  4. Utilisateur anonyme
     
    echo $sql = "SELECT * FROM forum_post WHERE topic_id=" . intval($id) . " ORDER BY post_time DESC LIMIT 1"; 
    die();
    


    dans ton code
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mathieu75012 Messages postés 12 Statut Membre
     
    ca met

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

    il met topic id 0
    0
    1. Utilisateur anonyme
       
      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
  7. mathieu75012 Messages postés 12 Statut Membre
     
    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
    1. Utilisateur anonyme
       
      Normal
      if($q->rowCount() != 0)
      sera une condition plus "acceptable" : )
      0
    2. mathieu75012 Messages postés 12 Statut Membre
       
      ca ne marche pas
      0
    3. Utilisateur anonyme
       
      ok, pas de souci !

      à la ligne 10 de ton code insere

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


      qu'y a t-il d'indiqué ?
      0
    4. mathieu75012 Messages postés 12 Statut Membre > Utilisateur anonyme
       
      il met 0
      0
    5. Utilisateur anonyme
       
      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