diff --git a/addressbook/inc/class.contacts_sql.inc.php b/addressbook/inc/class.contacts_sql.inc.php index 3725b808d0..e4d983494c 100644 --- a/addressbook/inc/class.contacts_sql.inc.php +++ b/addressbook/inc/class.contacts_sql.inc.php @@ -225,8 +225,6 @@ } } - //if ($query) { echo "DEBUG: Queries temporarily unavailable"; } - // turn filter's a=b,c=d OR a=b into an array if ($filter) { if ($DEBUG) { echo "DEBUG - Inbound filter is: #".$filter."#"; } @@ -251,19 +249,23 @@ // now check each element of the array and convert into SQL for queries // below $i=0; + reset($filterfields); while (list($name,$value) = each($filterfields)) { if ($DEBUG) { echo "
DEBUG - Filter intermediate strings 2: #".$name."# => #".$value."#"; } $isstd=0; if ($name && empty($value)) { - reset($stock_fields); - while (list($fname,$fvalue)=each($stock_fields)) { + if ($DEBUG) { echo "
DEBUG - filter field '".$name."' is empty (NULL)"; } + $check_stock = $this->stock_contact_fields + array('id' => 'id', 'tid' => 'tid', 'lid' => 'lid', 'owner' => 'owner'); + while (list($fname,$fvalue)=each($check_stock)) { if ($fvalue==$name) { $filterlist .= $name.' is NULL,'; $isstd=1; + if ($DEBUG) { echo "
DEBUG - filter field '".$name."' is a stock field"; } break; } } if (!$isstd) { + if ($DEBUG) { echo "
DEBUG - filter field '".$name."' is an extra field"; } $filterlist2 .= 'b.'.$name.' is NULL,'; $fieldlist2 .= 'b.'.$name.','; } @@ -303,6 +305,7 @@ if (!$sort) { $sort = "ASC"; } + reset($stock_fields); if ($order) { while (list($name,$value)=each($stock_fields)) { if ($name == $order) { @@ -400,7 +403,7 @@ } if ($DEBUG && $filtertemp) { - echo "
DEBUG - Filtering with: #" . $filtertemp . "#"; + echo "
DEBUG - Final SELECT - Filtering with: #" . $filtertemp . "#"; } $qfields = $std . $ext; @@ -418,12 +421,12 @@ $sql = 'SELECT a.id,a.tid,a.lid,a.owner,b.id,' . $qfields . ' FROM '.$this->std_table.' AS a, ' . $tmp_table .' AS b WHERE a.id=b.id ' . $filtertemp - . $squery . $ordermethod; + . $squery; $this->db3->query($sql,__LINE__,__FILE__); $this->total_records = $this->db3->num_rows(); - $this->db->query($sql. " " . $this->db->limit($start,$offset),__LINE__,__FILE__); + $this->db->query($sql. " " . " " . $ordermethod . " " . $this->db->limit($start,$offset),__LINE__,__FILE__); $i=0; while ($this->db->next_record()) {