QuestionDao.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. <?php
  2. Doo::loadCore('db/DooModel');
  3. class QuestionDao extends DooModel{
  4. public $id;
  5. public $cid;
  6. public $cid1;
  7. public $cid2;
  8. public $cid3;
  9. public $price;
  10. public $author;
  11. public $authorid;
  12. public $title;
  13. public $description;
  14. public $supply;
  15. public $url;
  16. public $time;
  17. public $endtime;
  18. public $phone;
  19. public $hidden;
  20. public $answers;
  21. public $views;
  22. public $goods;
  23. public $status;
  24. public $ip;
  25. public $search_words;
  26. public $_table = 'zhask_question';
  27. public $_primarykey = "id";
  28. public $_fields = array ('id', 'cid', 'cid1', 'cid2', 'cid3', 'price', 'author', 'authorid', 'title', 'description', 'supply', 'url', 'time', 'endtime', 'hidden', 'answers', 'views', 'goods', 'status', 'ip', 'search_words' );
  29. function get_QA($field="*",$condition="limit 1"){
  30. //as a left join " . t_user . " as b on (a.authorid=b.uid) left join " . t_usergroup . " as c on (b.groupid=c.groupid) where id=" . $id
  31. $sql = "select ".$field." from ".$this->_table." as a left join ".t_answer." as b on (a.id=b.qid) where ".$condition;
  32. $query = Doo::db ()->query ( $sql );
  33. $result = $query->fetchAll ();
  34. return $result;
  35. }
  36. /**
  37. * 获取当天数据数
  38. */
  39. function get_today_question($condition=""){
  40. $sql = "select count(*) as times from ".$this->_table." where from_unixtime(time,'%Y-%m-%d')=curdate() ".$condition;
  41. $query = Doo::db ()->query ( $sql );
  42. $result = $query->fetch ();
  43. return $result;
  44. }
  45. /**
  46. * 获取一个问题
  47. * @param unknown_type $id
  48. */
  49. function get_question_by_id($id = 0) {
  50. $sql = "select * from " . t_question . " where id=" . $id;
  51. $query = Doo::db ()->query ( $sql );
  52. $result = $query->fetch ();
  53. return $result;
  54. }
  55. /**
  56. * 获得相关问题
  57. * @param unknown_type $id
  58. * @param unknown_type $cid
  59. */
  60. function get_like_questions_list($id = 0, $cid = 0, $status = "") {
  61. $limit = " order by time desc limit 5";
  62. if($status!="")
  63. $status=" and status =".$status;
  64. $condition = " and hidden=0 and cid =" . $cid . " and id!=" . $id.$status;
  65. $condition = ' where 1 ' . $condition . $limit;
  66. $sql = "select * from " . t_question . $condition;
  67. $query = Doo::db ()->query ( $sql );
  68. $result = $query->fetchAll ();
  69. return $result;
  70. }
  71. /**
  72. * 获取问题额记录数(需要修改)
  73. * @param unknown_type $param
  74. * @return
  75. */
  76. function get_questions_count($param) {
  77. $condition = "";
  78. foreach ( $param as $key => $value ) {
  79. if (is_numeric ( $value )) {
  80. //悬赏不等于0
  81. if ($value == 13)
  82. $condition .= " and price != 0";
  83. elseif ($value != 0) {
  84. $condition .= " and " . $key . " = " . $value;
  85. }
  86. } elseif (is_string ( $value )) {
  87. if ('auto' == $key)
  88. $condition .= $value;
  89. elseif ('' != $value)
  90. $condition .= " and " . $key . " like '%" . $value . "%'";
  91. }
  92. }
  93. $condition = ' where 1' . $condition;
  94. $sql = "select count(*) as count from " . t_question . $condition;
  95. $query = Doo::db ()->query ( $sql );
  96. $result = $query->fetch ();
  97. return $result;
  98. }
  99. /**
  100. * 删除某个用户的所以问题
  101. * @param unknown_type $uid
  102. */
  103. function delete_question_by_authorid($uid = 0) {
  104. $sql = "delete from " . t_question . " where authorid = " . $uid;
  105. Doo::db ()->query ( $sql );
  106. }
  107. /**
  108. * 批量删除问题
  109. * @param unknown_type $id
  110. */
  111. function delete_question_list($id = array()) {
  112. $id = implode ( ",", $id );
  113. $sql = "delete from " . t_question . " where id in ( " . $id . " )";
  114. Doo::db ()->query ( $sql );
  115. }
  116. /**
  117. * 获取问题数据
  118. * @param unknown_type $param
  119. * @param unknown_type $limit
  120. */
  121. function get_questions_list($param, $limit) {
  122. $condition = "";
  123. foreach ( $param as $key => $value ) {
  124. if (is_numeric ( $value )) {
  125. //悬赏不等于0
  126. if ($value == 13)
  127. $condition .= " and price != 0";
  128. elseif ($value != 0) {
  129. $condition .= " and " . $key . " = " . $value;
  130. } elseif ($key == "hidden") {
  131. $condition .= " and " . $key . " = " . $value;
  132. }
  133. } elseif (is_string ( $value )) {
  134. if ('' != $value)
  135. $condition .= " and " . $key . " like '%" . $value . "%'";
  136. }
  137. }
  138. $limit = " order by time desc limit " . $limit ['lower'] . ", " . $limit ['size'] . "";
  139. $condition = ' where 1 ' . $condition . $limit;
  140. $sql = "select * from " . t_question . $condition;
  141. $query = Doo::db ()->query ( $sql );
  142. $result = $query->fetchAll ();
  143. return $result;
  144. }
  145. /**
  146. * 获取问题用户信息
  147. * @param unknown_type $id
  148. */
  149. function get_question_user_info_by_id($id = 0) {
  150. $sql = "select *,a.answers as qanswers from " . t_question . " as a left join " . t_user . " as b on (a.authorid=b.uid) left join " . t_usergroup . " as c on (b.groupid=c.groupid) where id=" . $id;
  151. $query = Doo::db ()->query ( $sql );
  152. $result = $query->fetch ();
  153. return $result;
  154. }
  155. /**
  156. * 获取回答用户信息
  157. * @param unknown_type $id
  158. */
  159. function get_answer_user_info_by_id($id = 0) {
  160. $sql = "select * from " . t_question . " as a left join " . t_user . " as b on (a.authorid=b.uid) left join " . t_usergroup . " as c on (b.groupid=c.groupid) where a.id=" . $id;
  161. $query = Doo::db ()->query ( $sql );
  162. $result = $query->fetchAll ();
  163. return $result;
  164. }
  165. /**
  166. * 根据ID关闭问题
  167. * @param unknown_type $id
  168. */
  169. function close_question_by_id($id = 0) {
  170. $endtime = get_date ();
  171. $sql = "UPDATE `" . t_question . "` SET `status` = 9 , endtime =" . $endtime . " WHERE `id` = " . $id;
  172. $query = Doo::db ()->query ( $sql );
  173. }
  174. /**
  175. * 更新一条问题信息
  176. * @param unknown_type $data
  177. * @param unknown_type $condition
  178. */
  179. function update_question($data = array(), $condition = "") {
  180. $prams = array ();
  181. foreach ( $data as $key => $value ) {
  182. $value = mysql_escape_string ( $value );
  183. $src = $key . " = '" . $value . "' ";
  184. array_push ( $prams, $src );
  185. }
  186. $prams = implode ( ",", $prams );
  187. $sql = "UPDATE " . t_question . " SET " . $prams . " " . $condition;
  188. $query = Doo::db ()->query ( $sql );
  189. }
  190. /**
  191. * 更新悬赏值
  192. * @param unknown_type $qid
  193. * @param unknown_type $add_price
  194. */
  195. function do_up_price($qid = 0, $add_price = 0) {
  196. $sql = "UPDATE `" . t_question . "` SET `price` = `price` + " . $add_price . " WHERE `id` = " . $qid;
  197. $query = Doo::db ()->query ( $sql );
  198. }
  199. /**
  200. * 问题关闭
  201. * @param unknown_type $qid
  202. */
  203. function close_question($qid = 0) {
  204. $sql = "UPDATE `" . t_question . "` SET `status` = " . QUESTOIN_STATUS_CLOSE . " WHERE `id` = " . $qid;
  205. $query = Doo::db ()->query ( $sql );
  206. }
  207. /**
  208. * 设置赞标记
  209. * @param unknown_type $qid
  210. */
  211. function set_question_goods($qid = 0) {
  212. $sql = "UPDATE `" . t_question . "` SET `goods` = 1 WHERE `id` = " . $qid;
  213. $query = Doo::db ()->query ( $sql );
  214. }
  215. function get_questions_By_Idlist($id=""){
  216. $sql = "select * from " . $this->_table . " where id in ( " . $id . " )";
  217. $query = Doo::db ()->query ( $sql );
  218. $result = $query->fetchAll ();
  219. return $result;
  220. }
  221. /**
  222. * 根据问题ID和用户获得问题
  223. * @param unknown_type $qid
  224. * @param unknown_type $uid
  225. */
  226. function get_question_by_uqid($qid = 0, $uid = 0) {
  227. $sql = "select * from " . t_question . " where id=" . $qid . " and authorid=" . $uid;
  228. $query = Doo::db ()->query ( $sql );
  229. $result = $query->fetch ();
  230. return $result;
  231. }
  232. }
  233. ?>