table_home_favorite.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: table_home_favorite.php 29149 2012-03-27 09:52:07Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class table_home_favorite extends discuz_table
  12. {
  13. public function __construct() {
  14. $this->_table = 'home_favorite';
  15. $this->_pk = 'favid';
  16. parent::__construct();
  17. }
  18. public function fetch_all_by_uid_idtype($uid, $idtype, $favid = 0, $start = 0, $limit = 0) {
  19. $parameter = array($this->_table);
  20. $wherearr = array();
  21. if($favid) {
  22. $parameter[] = dintval($favid, is_array($favid) ? true : false);
  23. $wherearr[] = is_array($favid) ? 'favid IN(%n)' : 'favid=%d';
  24. }
  25. $parameter[] = $uid;
  26. $wherearr[] = "uid=%d";
  27. if(!empty($idtype)) {
  28. $parameter[] = $idtype;
  29. $wherearr[] = "idtype=%s";
  30. }
  31. $wheresql = !empty($wherearr) && is_array($wherearr) ? ' WHERE '.implode(' AND ', $wherearr) : '';
  32. return DB::fetch_all("SELECT * FROM %t $wheresql ORDER BY dateline DESC ".DB::limit($start, $limit), $parameter, $this->_pk);
  33. }
  34. public function count_by_uid_idtype($uid, $idtype, $favid = 0) {
  35. $parameter = array($this->_table);
  36. $wherearr = array();
  37. if($favid) {
  38. $parameter[] = dintval($favid, is_array($favid) ? true : false);
  39. $wherearr[] = is_array($favid) ? 'favid IN(%n)' : 'favid=%d';
  40. }
  41. $parameter[] = $uid;
  42. $wherearr[] = "uid=%d";
  43. if(!empty($idtype)) {
  44. $parameter[] = $idtype;
  45. $wherearr[] = "idtype=%s";
  46. }
  47. $wheresql = !empty($wherearr) && is_array($wherearr) ? ' WHERE '.implode(' AND ', $wherearr) : '';
  48. return DB::result_first("SELECT COUNT(*) FROM %t $wheresql ", $parameter);
  49. }
  50. public function fetch_by_id_idtype($id, $idtype, $uid = 0) {
  51. if($uid) {
  52. $uidsql = ' AND '.DB::field('uid', $uid);
  53. }
  54. return DB::fetch_first("SELECT * FROM %t WHERE id=%d AND idtype=%s $uidsql", array($this->_table, $id, $idtype));
  55. }
  56. public function count_by_id_idtype($id, $idtype) {
  57. return DB::result_first("SELECT COUNT(*) FROM %t WHERE id=%d AND idtype=%s", array($this->_table, $id, $idtype));
  58. }
  59. public function delete_by_id_idtype($id, $idtype) {
  60. return DB::delete($this->_table, DB::field('id', $id) .' AND '.DB::field('idtype', $idtype));
  61. }
  62. public function delete($val, $unbuffered = false, $uid = 0) {
  63. $val = dintval($val, is_array($val) ? true : false);
  64. if($val) {
  65. if($uid) {
  66. $uid = dintval($uid, is_array($uid) ? true : false);
  67. }
  68. return DB::delete($this->_table, DB::field($this->_pk, $val).($uid ? ' AND '.DB::field('uid', $uid) : ''), null, $unbuffered);
  69. }
  70. return !$unbuffered ? 0 : false;
  71. }
  72. }
  73. ?>