0
我有一個foreach,然後foreach裏的foreach。第一個foreach似乎工作正常,我沒有得到任何PHP錯誤。但是在每個後續的foreach循環中,我得到一個Message: Undefined property: stdClass::$filename
錯誤(用每個標識符替換文件名)。有人能幫助我,並告訴我我做錯了什麼嗎?謝謝foreach循環中的foreach循環給我codeigniter中的問題
if($query = $this->db->get()){
foreach ($query->result() as $row)
{
$textable = $row->text_table;
}
$this->db->distinct('filename');
$this->db->select('location');
$this->db->from('TranslateData');
if($query1 = $this->db->get()){
foreach($query1->result() as $row1){
$this->db->select('string_id');
$this->db->select($textable);
$this->db->where('filename', $row1->filename);
$this->db->from('TranslateData');
$query2 = $this->db->get();
$xml = '<?xml version="1.0" encoding="utf-8" ?>'.PHP_EOL;
$xml .= '<data>'.PHP_EOL;
foreach($query2 as $row2){
$xml .= '<item>'.PHP_EOL;
$xml .= ' <name>'.$row2->string_id.'</name>'.PHP_EOL;
$xml .= ' <copy><![CDATA['.$row2->$textable.']]></copy>'.PHP_EOL;
$xml .= '</item>'.PHP_EOL;
}
$xml .= '</data>'.PHP_EOL;
$path = str_replace('/', '', $row1->location);
$this->save_xml($path, $row1->filename, $xml);
}
}
}
這似乎沒有定義'$ row1-> filename',請嘗試'var_dump($ row1)'來查看它的內容。 – RobertPitt 2010-08-26 08:52:38
羅伯特打敗了我。我建議不要這樣構建XML。嘗試並使用像PHP5的DomDocument – 2010-08-26 09:05:59
DomDocument是構建Xml文檔的完美方式,對驗證和衛生非常有用。 – RobertPitt 2010-08-26 10:24:16