Jump to content

Recommended Posts

Задача определить самых постоянных покупателей, подсчет суммы заказов из статуса "выполнено"

Кто нибудь задумывался об этом? Как это лучше организовать? 

Link to post
Share on other sites

выбираете количество заказов со статусом 2, групируя их по user_id, дальше связываете этот user_id с пользователем. можно в том же запросе, получаете количество выполненных заказов для каждого покупателя.

 

SELECT count(o.user_id) as order_count, SUM(o.total_price) as total_price, o.user_id, u.name
FROM `s_orders` o
LEFT JOIN `s_users` u ON o.user_id = u.id
WHERE status=7 
GROUP BY o.user_id
ORDER BY order_count DESC

 

на выходе получаете имя, айди покупателя, общую сумму покупок за заказы и количество самих заказов, отсортированное по убыванию

Link to post
Share on other sites

С Stats.php начинать это делать надо? Как то так?

<?php

require_once('../../../api/Simpla.php');

class StatAjax extends Simpla
{	
	public function fetch()
	{
		$query = $this->db->placehold('SELECT count(o.user_id) as order_count, SUM(o.total_price) as total_price, o.user_id, u.name FROM `s_orders` o LEFT JOIN `s_users` u ON o.user_id = u.id WHERE status=2 GROUP BY o.user_id ORDER BY order_count DESC');
		$this->db->query($query);
		$data = $this->db->results();

		$results = array();
 		foreach($data as $d)
 		{
 			$result['sum'] = $d->sum;
 			$result['o.user_id'] = $d->user_id;
 			
 			
 			$results[] = $result;
		}
		return $results;
	}
	
}

$stat_ajax = new StatAjax();
header("Content-type: application/json; charset=utf-8");
header("Cache-Control: must-revalidate");
header("Pragma: no-cache");
header("Expires: -1");		
$json = json_encode($stat_ajax->fetch());
print $json;
Link to post
Share on other sites

Это нужно делать отдельно от статистики по продажам, это файл аякс статистики, а не контролер, создайте новый класс по примеру других контролеров админки, можно прицепить к юзерам это, выводить можно много где, как и выбирать это все. Например сделать выборку в той же статистике но в файле simpla/statsadmin.php (вроде так пишется, я с планшета, не помню) и передавать отдельным массивом

Link to post
Share on other sites

Это нужно делать отдельно от статистики по продажам, это файл аякс статистики, а не контролер, создайте новый класс по примеру других контролеров админки, можно прицепить к юзерам это, выводить можно много где, как и выбирать это все. Например сделать выборку в той же статистике но в файле simpla/statsadmin.php (вроде так пишется, я с планшета, не помню) и передавать отдельным массивом

<?PHP

require_once('api/Simpla.php');


############################################
# Class goodCategories displays a list of products categories
############################################
class StatsAdmin extends Simpla
{
 
  public function fetch()
  {
	  
	  
	  
$result = mysql_query ("SELECT count(o.user_id) as order_count, SUM(o.total_price) as total_price, o.user_id, u.name
FROM `s_orders` o
LEFT JOIN `s_users` u ON o.user_id = u.id
WHERE status=2 
GROUP BY o.user_id
ORDER BY order_count DESC");
$myres = mysql_fetch_array ($result);

while ($myres = mysql_fetch_array($result));  
	  
	  
	  
	  
 	return $this->design->fetch('stats.tpl');
  }
}

 

В нужную сторону двигаюсь? 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...