| Autor | Zpráva | ||
|---|---|---|---|
| subzero11 Profil * |
#1 · Zasláno: 9. 5. 2011, 02:58:39
Zdravim panove,
nevite mi prosim poradit nekdo s problemem.. Pouzivam Codeignter framework.. no a vytvoril jsem si model, kterym bych chtel ulozit data do pole. Je to klasicka tabulka, id, rodic, zprava. takhle vypada muj model class Zpravy_model extends CI_Model {
private $zpravyArray = array();
function get_vsechny_zpravy($rodic = 0)
{
$query = $this->db->where('rodic', $id)->get('zpravy');
if ($query->num_rows() > 0) {
foreach ($query->result() as $zprava)
{
$this->zpravyArray[$zprava->id] = $zprava;
$this->zpravyArray[$zprava->id]->deti= $this->get_vsechny_zpravy($zprava->id);
}
}
if (!empty($this->$zpravyArray)) return $this->zpravyArray; else return NULL;
}
}tenhle kod mi nefunguje, .. script se zacykli.. Ale kdyz odstranim u pole $this-> a pouziju jen $zpravyArray ve vsech pripadech kdy pouzivam tohle pole, tak vse funguje jak ma... nevite nekdo v cem je problem? Pripadne co v mem scriptu upravit? Moc dekuji. |
||
| tany Profil * |
#2 · Zasláno: 9. 5. 2011, 11:12:40
no první věc co se mi tam rozhodně nelíbí, je rekurze bez kontroly zacyklení ..
když už rekurzi, tak bych ji stavěl opravdu jinak, get_vsechny_zpravy by jen obsluhovala rekurzi.
class trida extends CI_Model {
protected $_tem;
public function get_vsechny_zpravy()
{
$this->little_rekurze;
return $this->_temp;
}
protected function little_rekurze($rodic = 0)
{
..rekurze..
|
||
| subzero11 Profil * |
#3 · Zasláno: 9. 5. 2011, 12:45:59
Dekuji za postreh.
+ prikladam vysvetleni oneho problemu: "Your method is returning a class property, which you then insert into that same property due to your recursive calls. If you don’t use $this, it’s a function local variable, so you don’t have that issue." |
||
|
Časová prodleva: 14 let
|
|||
0