CodeIgniter, array do not accept string after $this->db->get
19:56 05 Aug 2014

According this code in the model Etablissements_commanditaires_m :

public  function ajouter()
   {
... code ...
$recuperer = $this->db->get($this->table)->result_array();
$recuperer['quantite_lignes'] = $this->db->count_all_results($this->table);
$recuperer['number'] = 5;
$recuperer['text'] = 'blabla';

The last line $recuperer['text'] = 'blabla'; makes error.

But the line $recuperer['number'] = 5; do not makes error.

The coming errors are : Illegal string offset or Undefined offset: 0

And this code in the controller :

$etablissements_commanditaires = $this->etablissements_commanditaires_m->ajouter();
$html['quantite_lignes'] = $etablissements_commanditaires['quantite_lignes'];
... code ...
$i=0;
foreach ($etablissements_commanditaires as $enregistrement)
            {
            echo 'aa'.$enregistrement['id_etablissement_payeur'].'bb'; // Makes the first error.
            ...
            }

The errors are :

Severity: Warning

Message: Illegal string offset 'id_etablissement_payeur'

Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php

Line Number: 240

aa5bb

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'id_etablissement_payeur'

Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php

Line Number: 243

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'id_etablissement_payeur'

Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php

Line Number: 254

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 0

Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php

Line Number: 260

How can I set a string to $recuperer['text'], without having error ?

An other case looking to be the same problem, and then wondering if my CodeIgniter/PHP is ok ?

PHP => PHP Version 5.5.9-1ubuntu4.3

CodeIgniter => 2.2.0

$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 '
';
print_r($result_etablissements_payeurs);
echo '
'; echo $result_etablissements_payeurs[0]['id_etablissement_payeur'] . ' - '; //Line Number: 279 echo $result_etablissements_payeurs[0]['nom']; //Line Number: 280

The print_r gives the good result with offset 0 :

 
Array
(
    [0] => Array
        (
            [id_etablissement_payeur] => 4
            [nom] => Etablissement payeur N° 4
        )

)
4 - Etablissement payeur N° 4
Array
(
    [0] => Array
        (
            [id_etablissement_payeur] => 1
            [nom] => Etablissement payeur N° 1
        )

)
1 - Etablissement payeur N° 1
Array
(
    [0] => Array
        (
            [id_etablissement_payeur] => 1
            [nom] => Etablissement payeur N° 1
        )

)
etc.

But the 2 echo makes an Undefined offset: 0 error :

Severity: Notice

Message: Undefined offset: 0

Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php

Line Number: 279

-

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 0

Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php

Line Number: 280

etc.

This is very strange, because offset 0 does exist, or I missed something somewhere.

Any idea ?

php arrays codeigniter object