IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création d'un objet indéfini


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut Création d'un objet indéfini
    Bonjour,

    Je viens vers vous car je rencontre un problème que je ne comprends pas. En effet, j'ai déjà effectué plusieurs recherches sur le net pour trouver des solutions à mon erreur, malheureusement je ne comprends pas la solution.

    Voici l'erreur que je récupère dans les logs PHP:
    [03-Apr-2014 14:10:24 Europe/Berlin] PHP Notice: Undefined property: stdClass::$dateTime in /Applications/MAMP/htdocs/TISSEO/TISSEO/lignes.php on line 22
    Et voici le code correspondant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    foreach($json1->departures->departure as $depart) {
    	$i++;
    	$date = $depart->dateTime;
    	$heure = date_create($date);
    	echo "<tr><td colspan=\"2\">";
    	//var_dump($heure);
     
    	if($i < sizeof($json1->departures->departure)){
    		echo "<div class=\"votes\">15</div></td><tr><td colspan=\"2\">";
    		echo "<button><img src=\"./images/plusG.png\"></button><button><img src=\"./images/moinsR.png\"></button></td>";
    		echo "<td rowspan=\"2\"><div id=\"l". $depart->line->shortName ."\">" .$depart->line->shortName. "</div> " ;  
    		echo "</td>";
    		echo "<td rowspan=\"2\">";
    		echo  date_format($heure, 'H:i')." ";echo "</td>";
     
    		foreach($depart->destination as $res1) {
    			echo "<td rowspan=\"2\">";
    			echo  $res1->name  ;
    			echo "</td>";
    		} 
    	}
    	echo "</tr></tr>";
    }
    ?>
    La ligne 22 de l'erreur correspondant à la ligne 5 dans le morceau de code.

    J'ai sélectionné seulement une partie du code (celle où l'erreur apparaît) si vous en avez besoin de plus je vous posterai le reste.

    Je vous remercie de votre aide

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Quelle version de php ?

    poste le résultat de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($depart->dateTime);

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    C'est la version 5.5.10, voici le résultat du var_dump:
    string(19) "2014-04-03 15:00:48" string(19) "2014-04-03 15:02:45" string(19) "2014-04-03 15:12:45" NULL
    Peut-être à cause du "NULL" à la fin?... A moins qu'il marque la fin du contenu.

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    En reprenant ton code avec une indentation appropriée, tu remarqueras que ton code html est erroné ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    foreach ($json1->departures->departure as $depart)
    {
        ++$i;
        $date = $depart->dateTime;
        $heure = date_create($date);
        echo <<<'html'
    <tr>
        <td colspan="2">
    html;
     
        if ($i < count($json1->departures->departure))
        {
            $hour = date_format($heure, 'H:i');
     
            echo <<<html
            <div class="votes">15</div>
        </td>
    <tr>
        <td colspan="2">
            <button><img src="./images/plusG.png"></button>
            <button><img src="./images/moinsR.png"></button>
        </td>
        <td rowspan="2">
            <div id="l{$depart->line->shortName}">{$depart->line->shortName}</div>
        </td>
        <td rowspan="2">
            {$hour}
        </td>
    html;
            foreach ($depart->destination as $res1)
            {
                echo <<<html
        <td rowspan="2">
            {$res1->name}
        </td>
    html;
            } 
        }
        echo <<<'html'
    </tr>
    </tr>
    html;
    }
    Je te laisse chercher où...

    Sinon PHP embarque une planquée de notations possibles afin d'améliorer la lisibilité et faciliter la maintenance de code, il faut s'en servir... ICI
    Voir du code qui traîne des \ en pagaille, des centaines d'echo à la suite les uns des autres c'est vraiment pénible.

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par CaNiBaLe Voir le message
    Peut-être à cause du "NULL" à la fin?
    Oui m'sieur, ton code essaie de créer une date comme ça : date_create(null);, c'est sûr ça ne risque pas de fonctionner...

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Merci pour tes réponses.
    Seulement, je ne suis pas vraiment habitué à coder en PHP ou en langage du web en général.

    Est-ce qu'il faudrait que je fasse une boucle: tant qu'on ne rencontre pas 'NULL'; pour corriger le problème?

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Il faut d'abord te poser la question si $depart->dateTime peut être effectivement à null.
    Si oui, que doit afficher la page dans ce cas de figure.
    Si elle ne doit rien afficher, juste une case vide cela donnerait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    foreach ($json1->departures->departure as $depart)
    {
        ++$i;
     
        $hour = '&nbsp;'; // par défaut
        if ( ! empty($depart->dateTime))
        {
            $date = date_create($depart->dateTime);
            if ($date !== false)  // date valide
            {
                $hour = date_format($date, 'H:i');
            }
        }
     
        echo <<<'html'
    <tr>
        <td colspan="2">
    html;
     
        if ($i < count($json1->departures->departure))
        {
            echo <<<html
            <div class="votes">15</div>
        </td>
    <tr>
        <td colspan="2">
            <button><img src="./images/plusG.png"></button>
            <button><img src="./images/moinsR.png"></button>
        </td>
        <td rowspan="2">
            <div id="l{$depart->line->shortName}">{$depart->line->shortName}</div>
        </td>
        <td rowspan="2">
            {$hour}
        </td>
    html;
            foreach ($depart->destination as $res1)
            {
                echo <<<html
        <td rowspan="2">
            {$res1->name}
        </td>
    html;
            }
        }
        echo <<<'html'
    </tr>
    </tr>
    html;
    }
    Ton code html est toujours erroné

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 79
    Points : 62
    Points
    62
    Par défaut
    Ok parfait je vois comment procéder, merci.
    Je vais corriger le code html.
    Impect!

    Bonne journée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création dynamique d'objets ?
    Par Arthur A. dans le forum C++
    Réponses: 6
    Dernier message: 16/06/2005, 00h55
  2. [Open Inventor] Création d'un objet FILE
    Par seiryujay dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 16/03/2005, 19h29
  3. création dynamique d'objet, projet win32
    Par noinneh dans le forum MFC
    Réponses: 5
    Dernier message: 03/02/2005, 17h07
  4. [Reflexivite]création dynamique d'objet et Héritage
    Par norkius dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 26/10/2004, 12h37
  5. Création d'un objet d'un form a l'autre
    Par Argonz dans le forum C++Builder
    Réponses: 12
    Dernier message: 03/03/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo