--- ed_classified.module_old	2007-08-05 10:30:05.000000000 -0700
+++ ed_classified.module	2007-09-22 00:07:05.000000000 -0700
@@ -160,18 +160,23 @@ function theme_ed_classified_ads_stats()
 }
 
 function ed_classified_get_adcount($only_published) {
-  if ($only_published) $status = 'status=1 AND';
-  $qr = db_query("SELECT COUNT(nid) as c FROM node WHERE $status type='ed_classified';");
+  $sql = 'SELECT COUNT(nid) as c FROM {node} WHERE ';
+  if ($only_published) $sql .= 'status = 1 AND ';
+  $sql .= "type = 'ed_classified'";
+  $qr = db_query($sql);
   $o = db_fetch_object($qr);
   return $o->c;
 }
+
 /**
  * Get ad count for time range
  */
 function ed_classified_get_adcount_for_time_range($start_time, $end_time, $only_published) {
-  if ($only_published) $status = 'status=1 AND';
-  $qr = db_query("SELECT COUNT(nid) as c FROM node WHERE $status type='ed_classified' AND  created >= %d AND created <=%d;", $start_time, $end_time);
-  $o= db_fetch_object($qr);
+  $sql = 'SELECT COUNT(nid) as c FROM {node} WHERE ';  
+  if ($only_published) $sql .= 'status = 1 AND ';
+  $sql .= sprintf("type = 'ed_classified' AND  created >= %d AND created <= %d", $start_time, $end_time);
+  $qr = db_query($sql);  
+  $o = db_fetch_object($qr);
   return $o->c;
 }
 
@@ -182,7 +187,8 @@ function ed_classified_get_popular_ads_l
   $output = '';
   $have_statistics = _ed_classified_module_exists('statistics');
   if ($have_statistics) {
-    $q = db_query("SELECT n.nid, n.title, n.created, n.changed, s.totalcount as counter FROM {node_counter} s INNER JOIN {node} n ON s.nid = n.nid WHERE n.status = 1 AND n.type = '%s' ORDER BY s.totalcount DESC LIMIT %d;", EDI_CLASSIFIED_MODULE_NAME, _ed_classified_variable_get('block_popular_limit', 4));
+    $sql = sprintf("SELECT n.nid, n.title, n.created, n.changed, s.totalcount as counter FROM {node_counter} s INNER JOIN {node} n ON s.nid = n.nid WHERE n.status = 1 AND n.type = '%s' ORDER BY s.totalcount DESC", EDI_CLASSIFIED_MODULE_NAME);
+    $q = db_query_range($sql, 0, _ed_classified_variable_get('block_popular_limit', 4));
     $output = theme('ed_classified_ads_block', _ed_classified_query_results_to_array($q), FALSE, TRUE, TRUE);
   }
   return $output;
@@ -193,7 +199,8 @@ function ed_classified_get_popular_ads_l
  * Get a list of latest ads for block use
  */
 function ed_classified_get_latest_ads_list() {
-  $q = db_query('select title, nid, created as timestamp, changed from {node} where type="ed_classified" AND status = 1 ORDER BY created DESC LIMIT %d;', _ed_classified_variable_get('block_latest_limit', 4));
+  $sql = "SELECT title, nid, created as timestamp, changed FROM {node} WHERE type = 'ed_classified' AND status = 1 ORDER BY created DESC";
+  $q = db_query_range($sql, 0, _ed_classified_variable_get('block_latest_limit', 4));
   return theme('ed_classified_ads_block', _ed_classified_query_results_to_array($q), TRUE, FALSE, TRUE );
 }
 
@@ -363,8 +370,8 @@ function _ed_classified_node_is_classifi
 /** 
  * Get a query result with any ads that have expired prior to a given date, and having a specific publish status
  */
-function _ed_classified_get_aged_ads($expire_time_start, $expire_time_end, $status=1) {
-  return db_query("SELECT * FROM {node} n, {edi_classified_nodes} ec WHERE n.type='ed_classified' AND n.vid = ec.vid  AND n.status = %d AND (ec.expires_on >= %d AND ec.expires_on <= %d)", $status, $expire_time_start, $expire_time_end );
+function _ed_classified_get_aged_ads($expire_time_start, $expire_time_end, $status = 1) {
+  return db_query("SELECT * FROM {node} n, {edi_classified_nodes} ec WHERE n.type = 'ed_classified' AND n.vid = ec.vid  AND n.status = %d AND (ec.expires_on >= %d AND ec.expires_on <= %d)", $status, $expire_time_start, $expire_time_end );
 }
 
 /**
@@ -659,14 +666,14 @@ function ed_classified_page($type = NULL
     $tree = taxonomy_get_tree(_ed_classified_get_vid(), $cats[$i]->tid, -1);
     $descendant_tids = array_merge(array($cats[$i]->tid), array_map('_taxonomy_get_tid_from_term', $tree));
     $last = db_fetch_object(db_query_range(db_rewrite_sql('SELECT n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN (%s) AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC'), implode(',', $descendant_tids), 0, 1));
-    $cats[$i]->latest = node_load(array('nid' => $last->nid));
+    if (!empty($last->nid)) $cats[$i]->latest = node_load(array('nid' => $last->nid));
   }
 
   // TODO: order by created date, #views, what?
   $ads = array();
   //  echo "tid=$tid<br>";  var_dump($tid);
   if ($tid) {
-    $result = pager_query(db_rewrite_sql("SELECT n.nid FROM {term_node} t INNER JOIN {node} n ON t.nid=n.nid WHERE n.status=1 AND n.type='ed_classified' AND t.tid=%d ORDER BY n.sticky DESC, n.created DESC"), _ed_classified_variable_get('ads_per_page', 10), 0, NULL, $tid);
+    $result = pager_query(db_rewrite_sql("SELECT n.nid FROM {term_node} t INNER JOIN {node} n ON t.nid = n.nid WHERE n.status = 1 AND n.type = 'ed_classified' AND t.tid = %d ORDER BY n.sticky DESC, n.created DESC"), _ed_classified_variable_get('ads_per_page', 10), 0, NULL, $tid);
     while ($node = db_fetch_object($result)) {
       $ads[] = node_load(array('nid' => $node->nid));
     }
@@ -777,7 +784,7 @@ function theme_ed_classified_credits()
  */
 function ed_classified_get_ad_expiration($nid) {
   $expires = 0;// TODO: need windows-compatible old date - use time()?
-  $q = db_query("select expires_on from {edi_classified_nodes} ecn where ecn.nid = %d;", $nid);
+  $q = db_query("SELECT expires_on FROM {edi_classified_nodes} ecn WHERE ecn.nid = %d", $nid);
   if ($q && db_num_rows($q) != 0)
     $expires = db_result($q);
   return $expires;
@@ -1124,7 +1131,7 @@ function ed_classified_update($node) {
     ed_classified_insert($node);
   }
   else {
-    db_query("UPDATE {edi_classified_nodes} SET expires_on='%d' WHERE vid = %d", $node->expires_on, $node->vid);
+    db_query("UPDATE {edi_classified_nodes} SET expires_on = '%d' WHERE vid = %d", $node->expires_on, $node->vid);
   }
 }
 
