[ Rodja_ki @ 26.03.2013. 23:01 ] @
Pozdrav ljudi! Ceo dan se patim sa ovom greskom, ne mogu da dokucim zbog cega je dobijam...Guglao sam, trazio, ehovao maltene svaku promenljivu i dosao do otprilike gde se pojavljuje greska ali ne znam zbog cega... Code: require_once (LIB_PATH.DS.'database.php'); class Proizvodi { protected static $ime_tabele = "proizvod"; protected static $polje_baze = array('id_proizvoda', 'naziv_proizvoda', 'tehnicki_podaci', 'text_proizvoda', 'kvantitet', 'jedinica_mere', 'sifra_brenda', 'sifra_kategorije', 'cena', 'lager' ); public $id_proizvoda; public $naziv_proizvoda; public $tehnicki_podaci; public $text_proizvoda; public $kvantitet; public $jedinica_mere; public $sifra_brenda; public $sifra_kategorije; public $cena; public $lager; public static function pronadjiSve() { return self::pronadjiPoSqlu("SELECT * FROM " . self::$ime_tabele); } public static function pronadjPoId($id=0) { $resultArray = self::pronadjiPoSqlu("SELECT * FROM " . self::$ime_tabele . " WHERE sifra_kategorije={$id} "); return !empty($resultArray) ? array_shift($resultArray) : false; } public static function pronadjiPoSqlu($sql="") { global $database; $resultSet = $database->query($sql); echo $database->num_rows($resultSet); $object_array = array(); while ($row = $database->fatch_object($resultSet)) { $object_array[] = self::instantiate($row); } return $object_array ; } private static function instantiate($podatak) { $object = new self; // $objekat->id_proizvoda = $podatak['id_proizvoda']; // $objekat->naziv_proizvoda = $podatak['naziv_proizvoda']; // $objekat->tehnicki_podaci = $podatak['tehnicki_podaci']; // $objekat->text_proizvoda = $podatak['text_proizvoda']; // $objekat->kvantitet = $podatak['kvantitet']; // $objekat->jedinica_mere = $podatak['jedinica_mere']; // $objekat->sifra_brenda = $podatak['sifra_brenda']; // $objekat->sifra_kategorije = $podatak['sifra_kategorije']; // $objekat->cena = $podatak['cena']; // $objekat->lager = $podatak['lager']; //dinamicniji pristup za kratke forme foreach ($podatak as $atribute => $value) { if($object->has_atribute($atribute)) { $object->$atribute = $value; } else { echo "Ne postoje atributi <br />"; //stalno mi ispisuje gresku ovde, tj da ovaj if nije tacan } } return $object; } private function has_atribute($atribute) { return array_key_exists($atribute, $this->attributes()); } protected function attributes() { $attributes = array(); foreach(self::$polje_baze as $field) { if(property_exists($this, $field)) { $attributes[$field] = $this->$field; } else { echo "Ni ovde nema atributa"; } } return $attributes; } } Mojim nekim debagovanjem sam dosao do toga da mi u funkciji instantiate ispisuje negativnu logiku kod if-a...tacnije stalno mi ispisuje else deo...i da verovatno zbog toga na drugoj strani imam taj error Evo i koda stranice gde mi se pojavljuje greska... Code: <?php include("../../includes/initialize.php"); $id=13; echo "<hr>"; $proizvodna = Proizvodi::pronadjPoId($id); ?> <table class="bordered"> <tr> <th>Naziv</th> <th>Text</th> <th>kvantitet</th> <th>Lager</th> <th>Brend</th> <th> </th> </tr> <?php foreach($proizvodna as $proizvod): ?> <tr> <td></td> <td><?php echo $proizvod->naziv_proizvoda; ?></td> <td><?php echo $proizvod->text_proizvoda; ?></td> <td><?php echo $proizvod->kvantitet; ?></td> <td><?php echo $proizvod->lager; ?></td> <td><?php echo $proizvod->sifra_brenda; ?></td> </tr> <?php endforeach; ?> </table> gresku prijavljuje za svaki red u tabeli gde treba da se ispisu vrednosti...Nadam se da sam razumljivo objasnio, ako nisam pitajte da dodatno objasnim :) |