scusa ma avevo visto male le due query

da il warning perché all'interno della funzione non ha il valore di $database_connetti e di $connetti
dovresti dichiararli global all'interno della funzione
codice:
//contatore_annunci 
function contatore_annunci($HTTP_SESSION_VARS[id_membro], $_POST[an_oggetto]) { 
// *** contatore annunci 
   global $database_connetti, $connetti;
   if ($_POST['an_oggetto'] == "vendo") { 
   ....
per quanto riguarda la funzione, io ti consiglio di mantenere fuori la connessione al database (in modo da poterla usare anche per altre eventuali query) e farla più o meno in questo modo

codice:
function contatore_annunci($id, $oggetto = '') {
      global $connetti;      
      $sql = "UPDATE membri SET n_annunci=n_annunci+1".($oggetto == 'vendo' ? ", n_annunci_disp=n_annunci_disp-1" : "")." WHERE id ='$id'";
      $result = mysql_query($sql, $connetti) or die(mysql_error());
      echo "Sono stati effettuati ".mysql_affected_rows()." aggiornamenti
";
      $result = mysql_query("SELECT n_annunci FROM membri WHERE id='$id'", $connetti);
      list($next) = mysql_fetch_row($result);

      return $next;
}

// connessione db
// selezione db
$next = contatore_annunci($_SESSION['id'], $_POST['an_oggetto']);
// chiusura connessione