00001 <?php
00002
00003
00004
00005
00006
00007
00008 class DBResultSetSphinx implements IDBResultSet {
00009
00010
00011
00012
00013
00014 protected $result = null;
00015 protected $status;
00016
00017 public function __construct($result, $status) {
00018 $this->result = $result;
00019 $this->status = $status;
00020 }
00021
00022
00023
00024
00025
00026
00027 public function close() {
00028 $this->result = null;
00029 }
00030
00031
00032
00033
00034
00035
00036 public function get_column_count() {
00037 return 0;
00038 }
00039
00040
00041
00042
00043
00044
00045 public function get_row_count() {
00046 $ret = 0;
00047 if ($this->result) {
00048 $ret = $this->result['total'];
00049 }
00050 return $ret;
00051 }
00052
00053
00054
00055
00056
00057
00058 public function fetch() {
00059 $ret = false;
00060 if ($this->result) {
00061 $record = each($this->result['matches']);
00062 if ($record) {
00063 $ret = $this->read_record($record['value']);
00064 }
00065 }
00066 return $ret;
00067 }
00068
00069 protected function read_record($arr_record) {
00070 $ret = array();
00071 foreach($arr_record as $key => $value) {
00072 if (is_array($value)) {
00073 $ret = array_merge($ret, $this->read_record($value));
00074 }
00075 else {
00076 $ret[$key] = $value;
00077 }
00078 }
00079 return $ret;
00080 }
00081
00082
00083
00084
00085
00086
00087 public function get_status() {
00088 return $this->status;
00089 }
00090 }