Jump to content

Количество просмотров товаров


Recommended Posts

  • 1 month later...
  • Replies 52
  • Created
  • Last Reply

Top Posters In This Topic

api/blog.php view/blogview.php не? вы бы хоть заглянули в структуру симплы перед тем как задавать такие вопросы ))

Link to post
Share on other sites

после загрузки запроса чего то вылезла такая ошибка
http://joxi.ru/XadNUdg5CbDzWMYQz-c
Warning: Unknown column 'DISTINCTp.id' in 'field list' [sELECT DISTINCTp.id,p.url,p.brand_id,p.name,p.annotation,p.body,p.position,p.created as created,p.visible, p.featured, p.meta_title, p.meta_keywords, p.meta_description,p.views FROM s_products AS p LEFT JOIN s_brands b ON p.brand_id = b.id WHERE p.url = 'NWJ-148902' GROUP BY p.id LIMIT 1] in /home/a3534044/public_html/api/Database.php on line 105

Warning: Cannot modify header information - headers already sent by (output started at /home/a3534044/public_html/api/Database.php:105) in /home/a3534044/public_html/index.php on line 40



и пропали все url у товаров


что может быть ?

Link to post
Share on other sites
  • 2 weeks later...

Dj_Amulet, Вы наверное, в Хроме залогинены как админ, вот поэтому и не плюсует, там это в условиях прописано, мол админа в просмотрах не считать! У меня все работает.

Link to post
Share on other sites
  • 9 months later...

Делал по аналогии с блогом статей, но выдает ошибку

 

Fatal error: Call to a member function update_views() on a non-object in /..http/view/BlogView.php

:(

когда захожу под админм, ошибки нет, но подсчета нет :)

Link to post
Share on other sites
  • 2 years later...

после загрузки запроса чего то вылезла такая ошибка

http://joxi.ru/XadNUdg5CbDzWMYQz-c

Warning: Unknown column 'DISTINCTp.id' in 'field list' [sELECT DISTINCTp.id,p.url,p.brand_id,p.name,p.annotation,p.body,p.position,p.created as created,p.visible, p.featured, p.meta_title, p.meta_keywords, p.meta_description,p.views FROM s_products AS p LEFT JOIN s_brands b ON p.brand_id = b.id WHERE p.url = 'NWJ-148902' GROUP BY p.id LIMIT 1] in /home/a3534044/public_html/api/Database.php on line 105

 

Warning: Cannot modify header information - headers already sent by (output started at /home/a3534044/public_html/api/Database.php:105) in /home/a3534044/public_html/index.php on line 40

 

 

 

и пропали все url у товаров

 

 

что может быть ?

Запрос к базе зделай!

Link to post
Share on other sites

Gass509, обращайте внимание на даты. Довольно простой вопрос, на который Вы отвечаете, задан более ТРЕХ лет назад. Думаете, он еще актуален и автору вопроса пригодится Ваш ответ?

Link to post
Share on other sites
  • 2 months later...

Если не хотите считать количесво просмотров одного человека при каждом обновлении страницы, а только повторный просмотр по истечении определеного времени, можно записать в cookies уже просмотренные товары. Знаю что дублируется кукис browsed_products, но использовать не получилось из за разницы в expire time.

 

в view\ProductView.php после:

// Выбираем товар из базы
$product = $this->products->get_product((string)$product_url);
if(empty($product) || (!$product->visible && empty($_SESSION['admin'])))
return false;

Добавить

if(!empty($_COOKIE['products_viewed'])){
	$products_viewed = explode(',', $_COOKIE['products_viewed']);
	$product_viewed = in_array($product->id, $products_viewed);
	}
// Добавим текущий товар
$products_viewed[] = $product->id;
$cookie_val = implode(',', $products_viewed);
setcookie("products_viewed", $cookie_val, time() + (3600 * 6), "/");
			
if($product->visible && empty($_SESSION['admin']) && !$product_viewed)
$this->products->update_views($product->id);

В итоге повторный просмотр засчитается только через 6 часов отсутствия на сайте.

Link to post
Share on other sites

В итоге, если посетитель зайдет впервые и просмотрит 20 товаров, то просмотр будет зафиксирован только для первого, а остальные просмотры учтены не будут.

Link to post
Share on other sites

В итоге, если посетитель зайдет впервые и просмотрит 20 товаров, то просмотр будет зафиксирован только для первого, а остальные просмотры учтены не будут.

пересмотри код, все нормально считается.

Link to post
Share on other sites

Да, в этом случае считается правильно.

 

Если перезагрузить несколько раз страницу с товаров ID=45087, то в $_COOKIE['products_viewed']  записывается

"45087,45087,45087,45087,45087".  Это нерационально и к тому же при активном просмотре сайта может быстро исчерпаться лимит на куки.

 

Если пользователь откроет товар1, затем через 4 часа - товар2, затем еще через 4 часа - товар1,  то счетчик на товаре1 сработает лишь в первый раз. Так и планировалось?

Link to post
Share on other sites

Да, в этом случае считается правильно.

 

Если перезагрузить несколько раз страницу с товаров ID=45087, то в $_COOKIE['products_viewed']  записывается

"45087,45087,45087,45087,45087".  Это нерационально и к тому же при активном просмотре сайта может быстро исчерпаться лимит на куки.

 

Если пользователь откроет товар1, затем через 4 часа - товар2, затем еще через 4 часа - товар1,  то счетчик на товаре1 сработает лишь в первый раз. Так и планировалось?

 

вот  код который повторно не добавляет товар в куки

 

в view\ProductView.php после:

// Выбираем товар из базы
$product = $this->products->get_product((string)$product_url);
if(empty($product) || (!$product->visible && empty($_SESSION['admin'])))
return false;

 

if(!empty($_COOKIE['products_viewed'])){
	$products_viewed = explode(',', $_COOKIE['products_viewed']);
	$product_viewed = in_array($product->id, $products_viewed);
}
// Добавим текущий товар
if(!$product_viewed)
{
 $products_viewed[] = $product->id;
 $cookie_val = implode(',', $products_viewed);
 setcookie("products_viewed", $cookie_val, time() + (3600 * 6), "/");
 if($product->visible && empty($_SESSION['admin']) && !$product_viewed)
 $this->products->update_views($product->id);
}
Link to post
Share on other sites
  • 5 months later...

Пробовал сделать по аналогии чтобы считать количество купленных товаров но ничего не получилось, либо не добавляет +1 либо сыпятся ошибки, чтобы поле buy в таблице s_products увеличивал на 1 пи заказе товара.

Подскажите как правильно реализовать? Хочу выводить на странице с товаром сколько человек уже купило этот товар

Edited by Julius123
Link to post
Share on other sites
  • 8 months later...

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...