Notice: Undefined offset: 10

Fermé
David - 26 févr. 2007 à 17:21
 David - 26 févr. 2007 à 17:50
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

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
26 févr. 2007 à 17:45
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
(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