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

CodeIgniter PHP Discussion :

Erreur qui dit qu'il n'y a pas d'offset [0]


Sujet :

CodeIgniter PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 49
    Points
    49
    Par défaut Erreur qui dit qu'il n'y a pas d'offset [0]
    (re) Bonjour,

    Parallèlement à http://www.developpez.net/forums/d14...t/#post7920199, j'ai un autre problème similaire.

    A me demander si mon CodeIgniter et mon PHP sont en bonne santé.
    Les versions :
    PHP => PHP Version 5.5.9-1ubuntu4.3
    CodeIgniter => 2.2.0

    Le print_r du code suivant montre un tableau avec des [0] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $this->db->select('id_etablissement_payeur, nom');
    $this->db->where('id_etablissement_payeur',$enregistrement['id_etablissement_payeur']);
    $get_RESULTAT_etablissements_payeurs = $this->db->get('etablissements_payeurs');
    $result_etablissements_payeurs = $get_RESULTAT_etablissements_payeurs->result_array();
     
    echo '<pre>';
    print_r($result_etablissements_payeurs);
    echo '</pre>';
     
    echo $result_etablissements_payeurs[0]['id_etablissement_payeur'] . ' - '; //Ligne N° 279 dans mon fichier => N° ligne de l'erreur.
    echo $result_etablissements_payeurs[0]['nom']; //Ligne N° 280 dans mon fichier => N° ligne de l'erreur.
    Résultat du print_r :
    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
     
    <pre>Array
    (
    [0] => Array
            (
            [id_etablissement_payeur] => 4
            [nom] => Etablissement payeur N° 4
            )
     
    )
    </pre>4 - Etablissement payeur N° 4<pre>Array
    (
    [0] => Array
            (
            [id_etablissement_payeur] => 1
            [nom] => Etablissement payeur N° 1
            )
     
    )
    </pre>1 - Etablissement payeur N° 1<pre>Array
    (
    [0] => Array
            (
            [id_etablissement_payeur] => 1
            [nom] => Etablissement payeur N° 1
            )
     
    )
    etc.
    Mais les 2 echo des lignes 10 et 11, créent des erreurs Undefined offset: 0 :
    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
    <p>Severity: Notice</p>
    <p>Message:  Undefined offset: 0</p>
    <p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
    <p>Line Number: 279</p>
     
    </div> - <div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
     
    <h4>A PHP Error was encountered</h4>
     
    <p>Severity: Notice</p>
    <p>Message:  Undefined offset: 0</p>
    <p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
    <p>Line Number: 280</p>
     
    </div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
    etc.
    C'est vraiment curieux, car l'offset [0] existe, ou bien j'ai raté quelque chose quelque part ?

    Des idées ?
    Merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 49
    Points
    49
    Par défaut
    J'ai trouvé l'erreur, ne cherchez plus ! (enfin, si quelqu'un a tenté de chercher).

    Le résultat de mon tableau était parcouru par une boucle for, qui parcours tous les index, donc, copie de mon commentaire dans mon fichier :

    // Déclaration des balises du formulaire, résultat.

    // A cause de la structure du tableau de résultat qui contient le dernier index qui n'est pas un numéro :
    //
    // [0] => Array
    // [1] => Array
    // [2] => Array
    // [3] => Array
    // [quantite_lignes] => 4
    //
    // Il ne faut surtout pas utiliser de foreach(), qui balaye tous les index, y compris ceux qui ne sont pas des numéros.
    // Car sinon, ça génère des erreurs, quand le foreach() arrive sur l'index qui n'est pas un numéro et qui ne contient pas le sous tableau d'index de la base de données.
    //
    // Il faut donc utiliser une boucle for(), en utilisant la variable $etablissements_commanditaires[$i],
    // qui contient le numéro d'index et qui ne sera jamais l'index 'quantite_lignes' qui ne contient pas de sous tableau.

    Dans CodeIgniter, on doit tout passer dans un tableau (depuis le modèle), y compris ce qui ne provient pas de la base de donnée, et du coup j'ai créé un index supplémentaire [quantite_lignes] qui a mis le bazar dans ma boucle foreach().

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

Discussions similaires

  1. erreur qui dit Augmenter le paramètre « max_stack_depth »
    Par clavier12AZQSWX dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 07/04/2010, 22h50
  2. Réponses: 4
    Dernier message: 19/07/2007, 18h02
  3. erreur qui ne peut etre attrape
    Par dietrich dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/12/2006, 09h03
  4. Réponses: 4
    Dernier message: 30/08/2006, 08h37
  5. Réponses: 2
    Dernier message: 29/05/2006, 12h43

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