$kod)); self::cache_update($kod); if($dane['id']!=$kod) { self::cache_update($dane['id']); } } static function miejsce($regal, $polka, $rzad, $where) { db2::edit('ksiazki', array('regal' => strtoupper($regal), 'polka' => $polka, 'rzad' => $rzad), $where); self::cache_clear(); } static function usun(&$kod) { validate::KOD($kod); $dane = self::szukaj_KOD($kod); okladki::usun($dane['id'], $dane['ISBN']); db2::del('ksiazki', array('id' => $kod)); self::cache_clear($kod); } static function szukaj_KOD($kod) { validate::KOD($kod, TRUE); return self::cache_get($kod); } static function szukaj_ISBN($ISBN) { validate::EAN($ISBN); return db2::get('ksiazki', '*', array('ISBN' => $ISBN), NULL, 10); } static function szukaj_ISSN($ISSN) { validate::EAN($ISSN); return db2::get('ksiazki', '*', array('ISSN' => $ISSN), NULL, 10); } static function szukaj_info($dane, $order=NULL, $start=NULL, $limit=30) { $allow = array('id', 'tytul', 'autor', 'wydawnictwo', 'miejsce', 'rok', 'wydanie', 'wycofana'); $replace = array('tytul' => 'tytul~~', 'autor' => 'autor~~', 'wydawnictwo' => 'wydawnictwo~~'); $where = array(); foreach($dane as $key => $value) { if(!in_array($key, $allow) OR $value==='') { continue; } if($replace[$key]) { $key = $replace[$key]; } $where[$key] = $value; } if($where['id']) { validate::$kod = TRUE; switch(validate::type($where['id'])) { case 'ISBN': $where['ISBN'] = $where['id']; unset($where['id']); break; case 'ISSN': $where['ISSN'] = $where['id']; unset($where['id']); break; case 'MSC': $where['regal'] = $where['id']; if($dane['polka']) { $where['polka'] = $dane['polka']; } if($dane['rzad']) { $where['rzad'] = $dane['rzad']; } unset($where['id']); break; } validate::$kod = FALSE; } if(!$where['regal']) { unset($where['polka']); unset($where['rzad']); } if($where['id']) { $ret[] = self::szukaj_KOD($where['id']); $num = count($ret); } else { if($dane['do']) { $num = db2::num('pozycz', 'id', array('do' => NULL)); if($num==0) { $ret = array(); } else { $ret = db2::get(array('pozycz', array('J', 'ksiazki', 'USING', 'id')), '*', array('do' => NULL), $order, $start, $limit); } } else { $num = db2::num('ksiazki', 'id', $where); if($num==0) { $ret = array(); } else { $where = db2::__combine_where($where, TRUE); $ret = db2::escape_data(sql::fetch(sql::query('SELECT *, (SELECT MAX(`od`) FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id`) as `od2`, (SELECT `do` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `do`, (SELECT `kto` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `kto`'.(db2::revelance() ? ', '.db2::$revelance : '').' FROM `ksiazki`'.$where.db2::__combine_order($order, TRUE).db2::__combine_limit($start, $limit)))); } } self::cache_addarray($ret); } return array($num, $ret, db2::revelance()); } } ?>