CodeIgniter Forums
why does this model work in PHP5 but not PHP4.4? - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forum-20.html)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forum-21.html)
+--- Thread: why does this model work in PHP5 but not PHP4.4? (/thread-33623.html)



why does this model work in PHP5 but not PHP4.4? - El Forum - 09-02-2010

[eluser]jng[/eluser]
I have made this on my mac, which I realized has the latest version of PHP so my guess is what this is not working?

To remove all the IF ELSE PHP logic from view, I moved it to the model, but maybe this logic is also wrong?

Basically any of the new properties like "foundclass", "hasTruppengattung", etc. don't show up on my webserver with PHP4 and instead just returns "Message: Undefined property: foundclass".

Thank you for any help you can provide.


Code:
<?php
class Bayern_model extends Model {
    
    function getAll() {

        
        $q = $this->db->query("SELECT * FROM people ORDER BY last_name");
        
        if($q->num_rows() > 0) {
            foreach ($q->result() as $row) {
                $data[] = $row;
                
                $date = explode("-",$row->birthdate);
                //date("d M Y", mktime(0, 0, 0, $date[0], $date[1], $date[2]))
                
                $row->birthinfo = ($row->birthdate!="0000-00-00") ? "geb. " . date("d M Y", mktime(0, 0, 0, $date[1], $date[2], $date[0])) : "";
                $row->birthinfo .= ($row->birthplace!="") ? ", " . $row->birthplace : "";
                $row->foundclass = ($row->isFound) ? "found" : "notfound";                
                
                $row->hasTruppengattung = ($row->truppengattung!="") ? true : false ;
                $row->hasFormation = ($row->formation!="") ? true : false ;
                $row->hasTruppenteil = ($row->truppenteil!="") ? true : false ;        
                $row->hasServiceInfo = ( $row->hasTruppengattung || $row->hasFormation || $row->hasTruppenteil ) ? true : false ;
                
                
                $row->hasNotes = ($row->notes!="") ? true : false ;                
                $row->hasSource = ($row->sourceLink!="") ? true : false ;
                $row->hasScan = ($row->recordScan!="") ? true : false ;
                
                $row->searchURL = "http://mywebsite/?firstname" . $row->first_name . "&lastname;=" . $row->last_name;
                if($row->birthdate!="0000-00-00")
                    $row->searchURL .= "&birthyear;=" . $date[0];
            }
        return $data;
        }
    }
    
    
}



why does this model work in PHP5 but not PHP4.4? - El Forum - 09-02-2010

[eluser]gyo[/eluser]
Do you have access to the PHP errors log?


why does this model work in PHP5 but not PHP4.4? - El Forum - 09-02-2010

[eluser]jng[/eluser]
I don't think so, but I saw that Code Igniter can make its own error logs. Should I try that?


why does this model work in PHP5 but not PHP4.4? - El Forum - 09-02-2010

[eluser]gyo[/eluser]
Maybe this is the problem... shouldn't the $data[] = $row; be at the end of your foreach?
As you do it now, $data doesn't contain any new values like 'foundclass' etc... because it's been set before they are declared.

Anyways, CodeIgniter only logs application related information, there's no php or mysql errors logged there.
You can still try switching your local webserver to PHP4 and test it there.


why does this model work in PHP5 but not PHP4.4? - El Forum - 09-02-2010

[eluser]jng[/eluser]
Brilliant! Thanks a lot!

That was it! Funny how the newer version of PHP allows bad code. hehe. Cheers!


why does this model work in PHP5 but not PHP4.4? - El Forum - 09-02-2010

[eluser]gyo[/eluser]
I think it doesn't work in both PHP4/5, but maybe you just have a different errors report setting.