Notice: Undefined offset: 10

David -  
 David -
Bonjour,

J'ai deux notices de type "Notice: Undefined offset: 10 " dans cette fonction : (j'ai mis des points d'exclamation devant les deux lignes engendrant les erreurs) :

//consultation d'un champ
function field($Colonne)
{
if(isset($this->aryData))
{
if(gettype($Colonne) == "integer")
{
if(gettype($this->aryData[$this->intIndex][$Colonne]) != "array")
{
return trim($this->aryData[$this->intIndex][$Colonne]);
}
else
{
return $this->aryData[$this->intIndex][$Colonne];
}
}
else if(gettype($Colonne) == "string")
{
!!!!!!!!!!!!! if(gettype($this->aryData[$this->intIndex][$this->aryNames[strtoupper($Colonne)]]) != "array")
{
!!!!!!!!!!!!! return trim($this->aryData[$this->intIndex][$this->aryNames[strtoupper($Colonne)]]);
}
else
{
return $this->aryData[$this->intIndex][$this->aryNames[strtoupper($Colonne)]];
}
}
}
else
{
return "";
}

Pourriez-vous m'aider?
Merci d'avance
David
Configuration: Windows 2000
Internet Explorer 6.0

2 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Avec tous tes "if" et imbrications, ce serait vraiment plus clair si tu utilisais les balises < code> de ce forum, qui permettent de garder les indentations de début de ligne...

    A part ça, l'erreur me semble claire : ton $this->aryData[$this->intIndex]...
    pose problème car $this->intIndex vaut 10, et que aryData[10] n'existe pas... Mais on ne peut pas t'en dire plus sans avoir tout le code, et notamment la façon dont a été rempli aryData.

    Xavier
    1
  2. David
     
    (merci pour ta réponse)

    Voici tout le code :

    //classe recordset
    class Recordset
    {
    var $classname = "Recordset";
    var $persistent_slots = array("aryData","aryNames","intIndex","intRowCount","intColCount");
    var $aryData; //tableau contenant les donnees
    var $aryNames; //tableau contenant le numero de colonnes
    var $intIndex = 0; //index de parcours des enr
    var $intRowCount = 0; //nombre de lignes
    var $intColCount = 0; //nombre de colonnes

    // permet de renseigner l'objet une fois instancie
    function setData($aryNewData, $aryNewNames)
    {
    $this->intIndex = 0;
    $this->aryData = $aryNewData;
    $this->aryNames = $aryNewNames;
    $this->intRowCount = count($this->aryData);

    if($this->intRowCount == 0)
    {
    $this->intColCount = 0;
    }
    else
    {
    $this->intColCount = count($this->aryData);
    }
    }

    //teste si l'index est situe avt le 1er enregistrement
    function BOF()
    {
    return (($this->intIndex == -1)or($this->intRowCount == 0));
    }

    //teste si l'index est situe apres le dernier enregistrement
    function EOF()
    {
    return ($this->intIndex == $this->intRowCount);
    }

    //teste s'il existe un enregistrement
    function isEmpty()
    {
    return ($this->intRowCount == 0);
    }

    //place l'index sur le 1er enregistrement
    function moveStart()
    {
    $this->intIndex = 0;
    }

    //place l'index sur le dernier enregistrement
    function moveEnd()
    {
    if(isset($this->aryData))
    $this->intIndex = $this->intRowCount - 1;
    }

    //place l'index sur l'enregistrement suivant
    function moveNext()
    {
    if((isset($this->aryData))&&(!$this->EOF()))
    $this->intIndex++;
    }

    //place l'index sur l'enregistrement precedent
    function movePrec()
    {
    if((isset($this->aryData))&&(!$this->BOF()))
    $this->intIndex--;
    }

    //place l'index a $intDest
    function move($intDest)
    {
    if((isset($this->aryData))&&($intdest >= 0)&&($intDest < $this->intRowCount))
    $this->intIndex = $intDest;
    }

    //consultation d'un champ
    function field($Colonne)
    {
    if(isset($this->aryData))
    {
    if(gettype($Colonne) == "integer")
    {
    if(gettype($this->aryData[$this->intIndex][$Colonne]) != "array")
    {
    return trim($this->aryData[$this->intIndex][$Colonne]);
    }
    else
    {
    return $this->aryData[$this->intIndex][$Colonne];
    }
    }
    else if(gettype($Colonne) == "string")
    {
    if(gettype($this->aryData[$this->intIndex][$this->aryNames[strtoupper($Colonne)]]) != "array")
    {
    return trim($this->aryData[$this->intIndex][$this->aryNames[strtoupper($Colonne)]]);
    }
    else
    {
    return $this->aryData[$this->intIndex][$this->aryNames[strtoupper($Colonne)]];
    }
    }
    }
    else
    {
    return "";
    }
    }
    }
    -1