$query est utilisé avant le while et à l'intérieur du while ... Changer le nom de la variable en $query2 , par exemple :
$hoje = strtotime(date("d-m-Y"));
$db = new DBConfig();
$db -> config();
$db->conn();
$query = mysql_query("SELECT * FROM products WHERE auto_pub = ".$hoje) or die(mysql_error());
while($res = mysql_fetch_assoc($query)) {
$query2 = mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error());
}
$db->close();
J'espère que ça aide.