Page 1 sur 1

[RESOLU] Notice : Trying to get property of non-object in

Posté : 01 oct. 2011, 20:17
par 24images
Bonjour,

J'ai transférer mon site sous Joomla chez OVH, et apparait alors ce message sur ma page d'accueil :

Notice: Trying to get property of non-object in /homez.398/diaph/www/components/com_jumi/files/index_journal04.php on line 184

Notice: Trying to get property of non-object in /homez.398/diaph/www/components/com_jumi/files/index_journal04.php on line 185

Notice: Trying to get property of non-object in /homez.398/diaph/www/components/com_jumi/files/index_journal04.php on line 186


Il s'agit d'extraire des données de l'enregistrement suivant (à celui affiché) par ordre de date dans la base de données et l'erreur se produit lorsqu'il n'y a pas d'enregistrement suivant, que l'enregistrement est le plus récent

Il s'agit d'un fichier .php intégré à joomla par jumi
voici les lignes de php auxquelles correspondent le message
<?
if(isset($mois) && isset($annee) && isset($jour_numerique)) {
  $query = "SELECT annee,mois,jour FROM journal WHERE ((jour<'$jour_numerique' AND mois='$mois_numerique' AND annee='$annee') OR (mois<'$mois_numerique' AND annee='$annee') OR (mois>'$mois_numerique' AND annee<'$annee')) ORDER BY annee DESC,mois DESC,jour DESC LIMIT 0,1";
  $result = mysql_query($query, $connexion);
  $result = mysql_fetch_object($result);
  $jour = $result->jour;
  $month = $result->mois;
  $year = $result->annee;
  if($jour != "") {
    print("              <a href=\"http://www.pavans.fr/index.php?option=com_jumi&fileid=3&Itemid=2&lang=fr&jour=$jour&mois=$month&annee=$year\"><img src=\"components/com_jumi/files/back_17_n.gif\" width=\"11\" height=\"17\" border=\"0\"  alt=\"previous\"  onmouseover=\"this.src='components/com_jumi/files/back_17_o.gif';\" onmouseout=\"this.src='components/com_jumi/files/back_17_n.gif';\"></a>\n");
    print("              &nbsp;\n");
  }
?>
              <a href="http://www.pavans.fr/index.php?option=com_jumi&fileid=4&Itemid=4&lang=fr&mois=<? echo "$mois&annee=$annee" ?>"><img src="components/com_jumi/files/planche_17_n.gif" width="20" height="17" border="0" alt="planche" onmouseover="this.src='components/com_jumi/files/planche_17_o.gif';" onmouseout="this.src='components/com_jumi/files/planche_17_n.gif';"></a>
<?php
  $query = "SELECT annee,mois,jour FROM journal WHERE ((jour>'$jour_numerique' AND mois='$mois_numerique' AND annee='$annee') OR (mois>'$mois_numerique' AND annee='$annee') OR (mois<'$mois_numerique' AND annee>'$annee')) ORDER BY annee,mois,jour LIMIT 0,1";
  $result = mysql_query($query, $connexion);
  $result = mysql_fetch_object($result);
  $jour = $result->jour; // <=== ligne184
  $month = $result->mois;  // <===  ligne185
  $year = $result->annee; // <===  ligne186
  if($jour != "") {
    print("              &nbsp;\n");
    print("              <a href=\"http://www.pavans.fr/index.php?option=com_jumi&fileid=3&Itemid=2&lang=fr&jour=$jour&mois=$month&annee=$year\"><img src=\"components/com_jumi/files/for_17_n.gif\" width=\"11\" height=\"17\" border=\"0\" alt=\"next\" onmouseover=\"this.src='components/com_jumi/files/for_17_o.gif';\" onmouseout=\"this.src='components/com_jumi/files/for_17_n.gif';\"></a>\n");
  }
}
?>
mon hebergement est en PHP 5.3.8
vous trouverez les infos http://www.pavans.fr/infosphp.php
sinon mon site est http://wwww.pavans.fr

Merci de votre aide

Re: Notice : Trying to get property of non-object in

Posté : 01 oct. 2011, 21:20
par xTG
Avant de tenter d'exploiter le résultat d'une requête, il faut tester qu'il y a des résultats. ;)
mysql_num_rows() pourra t'aider.

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 00:07
par 24images
Après ton conseil et la consultation de PHP Manual je viens d'essayer d'intégrer cette fonction dans ma page mais je suis bien trop novice pour parvenir à un résultat qui fonctionne
Saurais tu me conseiller une solution ?

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 01:21
par moogli
Salut,

Quel est le code utilisé ?

Sinon il s'qgit s'un simple if :/

@+

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 09:26
par sirakawa
8Il faudrai creuser du côté de javascript.... qui est ce (this)?

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 12:18
par popy
8Il faudrai creuser du côté de javascript.... qui est ce (this)?
Alors, :
1) Les notices PHP ne sont certainnement pas liées à un problème de javascript
2) Le this dans les évenements d'un tag se rapporte bien entendu au tag en question (a l'objet DOMNode qui le représente)

xTG a bien cerné le problème, pas la peine de rajouter des inepties.

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 21:14
par sirakawa
Il faudrait creuser du côté de javascript.... qui est ce (this)?
Alors, :
1) Les notices PHP ne sont certainnement pas liées à un problème de javascript
2) Le this dans les évenements d'un tag se rapporte bien entendu au tag en question (a l'objet DOMNode qui le représente)

xTG a bien cerné le problème, pas la peine de rajouter des inepties.
Merci pour les inepties... Il est vrai que ce genre de réponse aide à résoudre le problème...
Ah bon, une erreur Javascript repose sur le fait que on n'a pas exploité "correctement" le résultat d'um mysql_query?
C'est une erreur PHP ce message :

Code : Tout sélectionner

Notice: Trying to get property of non-object in /homez.398/diaph/www/components/com_jumi/files/index_journal04.php on line 184
Il faudrait lire entièrement les demandes d'aide avant d ese précipiter sur les rféponses standardisées:
$result = mysql_query()...
if ($result).....
C'est un comportement systématique que j'observe dans les réponses des gourous, comme si les réponses étaient automatisées...
C'est comme quand qqn demande à saisir des tableau dont les données sont en ligne et qu'on lui répond avec le codage usuel qui l'amène à avoir autant de tableaux que de données différentes, alors que la répons eà sa question est tout autre.

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 21:27
par 24images
Woaaaa le debat me dépasse complétement,

J'ai fait quelques tentatives de script avec if mais je me suis bien planté. J'aurais assez peur de me ridiculiser. Mes notions de PHP tiennent plus d'un art empirique et chanceux de la copie avec éventuelle recitation de formule magique que d'une réelle compétence.
Si quelqu'un a une piste plus précise je suis preneur...

Re: Notice : Trying to get property of non-object in

Posté : 03 oct. 2011, 21:58
par xTG
Voici un genre de traitement qui serait attendu :
if( ... vérification des variables envoyées ...)
{
  $sql = '...'; // ta requête
  $res = mysqli_query($sql); // mysqli est à jour contrairement à mysql qui a été abandonné (le pilote, pas le sgbd ;) et les fonctions se ressemblent traits pour trait )
  // vérification des erreurs (juste pour un mode de fonctionnement debug)
  if( !res )
  {
    echo mysqli_errno() . ": " . mysqli_error();
  }
  else
  {
    // vérification du nombre de lignes renvoyées par la requête
    if( mysqli_num_rows() > 0 )
    {
      $r = mysqli_fetch_array($res);
      // affichage des résultats
    }
  }
}
@sirakawa : toutes ces erreurs sont des erreurs PHP et n'ont rien à voir avec le JS. ;)

Edit : j'ai corrigé le code, j'avais entamé avec mysqli et continué avec mysql... ça fait tâche. :D

Re: Notice : Trying to get property of non-object in

Posté : 04 oct. 2011, 10:29
par 24images
Merci beaucoup je vais tacher d'avancer avec ça je te tiens au courant...

Re: Notice : Trying to get property of non-object in

Posté : 04 oct. 2011, 11:09
par popy
Ah bon, une erreur Javascript repose sur le fait que on n'a pas exploité "correctement" le résultat d'um mysql_query?
C'est une erreur PHP ce message :

Code : Tout sélectionner

Notice: Trying to get property of non-object in /homez.398/diaph/www/components/com_jumi/files/index_journal04.php on line 184
Oui, c'est donc exactement ce que je disais. Tu es le seul a avoir évoqué javascript comme cause potentielle.

Re: Notice : Trying to get property of non-object in

Posté : 04 oct. 2011, 22:43
par 24images
Finalement j'ai pondu ça :
<?
if(isset($mois) && isset($annee) && isset($jour_numerique)) {
  $query = "SELECT annee,mois,jour FROM journal WHERE ((jour<'$jour_numerique' AND mois='$mois_numerique' AND annee='$annee') OR (mois<'$mois_numerique' AND annee='$annee') OR (mois>'$mois_numerique' AND annee<'$annee')) ORDER BY annee DESC,mois DESC,jour DESC LIMIT 0,1";
  $result = mysql_query($query, $connexion);
  if( mysql_num_rows($result) > 0 )
    {
  $res = mysql_fetch_object($result);
  $jour = $res->jour;
  $month = $res->mois;
  $year = $res->annee;
  if($jour != "") {
    print("              <a href=\"http://www.pavans.fr/index.php?option=com_jumi&fileid=3&Itemid=2&lang=fr&jour=$jour&mois=$month&annee=$year\"><img src=\"components/com_jumi/files/back_17_n.gif\" width=\"11\" height=\"17\" border=\"0\"  alt=\"previous\"  onmouseover=\"this.src='components/com_jumi/files/back_17_o.gif';\" onmouseout=\"this.src='components/com_jumi/files/back_17_n.gif';\"></a>\n");
    print("              &nbsp;\n");
  }}
?>
              <a href="http://www.pavans.fr/index.php?option=com_jumi&fileid=4&Itemid=4&lang=fr&mois=<? echo "$mois&annee=$annee" ?>"><img src="components/com_jumi/files/planche_17_n.gif" width="20" height="17" border="0" alt="planche" onmouseover="this.src='components/com_jumi/files/planche_17_o.gif';" onmouseout="this.src='components/com_jumi/files/planche_17_n.gif';"></a>
<?php
  $query = "SELECT annee,mois,jour FROM journal WHERE ((jour>'$jour_numerique' AND mois='$mois_numerique' AND annee='$annee') OR (mois>'$mois_numerique' AND annee='$annee') OR (mois<'$mois_numerique' AND annee>'$annee')) ORDER BY annee,mois,jour LIMIT 0,1";
  $result = mysql_query($query, $connexion);
  if( mysql_num_rows($result) > 0 )
    {
  $res = mysql_fetch_object($result);
  
  $jour = $res->jour;
  $month = $res->mois;
  $year = $res->annee;  
  
  if($jour != "") {
    print("              &nbsp;\n");
    print("              <a href=\"http://www.pavans.fr/index.php?option=com_jumi&fileid=3&Itemid=2&lang=fr&jour=$jour&mois=$month&annee=$year\"><img src=\"components/com_jumi/files/for_17_n.gif\" width=\"11\" height=\"17\" border=\"0\" alt=\"next\" onmouseover=\"this.src='components/com_jumi/files/for_17_o.gif';\" onmouseout=\"this.src='components/com_jumi/files/for_17_n.gif';\"></a>\n");
  }
} }
?>
Cela semble fonctionner.
Je suis sûr que ce n'est pas la perfection en terme de debug, gestion des erreurs et mise à jour des fonctions mais bon je suis déjà en estrême limite de mes compétences.

Merci beaucoup de votre aide en tout cas.