【问题标题】:CodeIgniter, array do not accept string after $this->db->getCodeIgniter,数组不接受 $this->db->get 之后的字符串
【发布时间】:2014-08-06 01:06:50
【问题描述】:

根据模型 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';

最后一行 $recuperer['text'] = 'blabla';出错了。

但是 $recuperer['number'] = 5;不要犯错误。

即将出现的错误是:Illegal string offset or Undefined offset: 0

控制器中的这段代码:

$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.
            ...
            }

错误是:

<p>Severity: Warning</p>
<p>Message:  Illegal string offset 'id_etablissement_payeur'</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 240</p>

</div>aa5bb<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  Illegal string offset 'id_etablissement_payeur'</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 243</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: Warning</p>
<p>Message:  Illegal string offset 'id_etablissement_payeur'</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 254</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: 260</p>

如何将字符串设置为 $recuperer['text'],而不会出错?

另一个案例看起来是同样的问题,然后想知道我的 CodeIgniter/PHP 是否正常?

PHP => PHP 版本 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 '<pre>';
print_r($result_etablissements_payeurs);
echo '</pre>';

echo $result_etablissements_payeurs[0]['id_etablissement_payeur'] . ' - '; //Line Number: 279
echo $result_etablissements_payeurs[0]['nom']; //Line Number: 280

print_r 的偏移量为 0,效果很好:

 <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.

但是 2 回声产生了一个未定义的偏移量:0 错误:

<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.

这很奇怪,因为偏移量 0 确实存在,或者我错过了什么地方。

有什么想法吗?

【问题讨论】:

    标签: arrays codeigniter object


    【解决方案1】:

    我发现了第二个问题“An other case looking ...”的问题

    我的模型的结果表如下:

    [0] => Array
    [1] => Array
    [2] => Array
    [3] => Array
    [quantite_lignes] => 4
    

    然后,当我将此表放入 foreach() 中时,最后一个索引会出错,因为它不包含数组。

    可能第一个问题也是这样……还没看呢,快来了……

    返回,

    我发现了关于第一个问题的问题,它与第二个问题(foreach()问题)有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多