Колко пъти е преглеждана дадена новина

Vladislaw

Registered
Здравейте,

някой да има работещ php/mysql код, който да показва за всяка страница (новина) по-отделно колко пъти е преглеждана?
Преди доста години бях писал такъв код, но нямам спомен как се правеше.. А в нета пробвах над 10 нито едно не работи.
 
Добавяш си една колона `views` при преглед на новината правиш UPDATE заявка с view+1

UPDATE `news` SET views = views +1 WHERE `news_id` = $id;
 
Ticketa каза:
Добавяш си една колона `views` при преглед на новината правиш UPDATE заявка с view+1

UPDATE `news` SET views = views +1 WHERE `news_id` = $id;

Добавил съм такава колона "count" и изкарвам резултата така:

Код:
<?php
$pid=intval($_GET['nid']);
 $query=mysqli_query($con,"select tblposts.PostTitle as posttitle,tblposts.id as pid,tblposts.Count as count,tblposts.Vrolite as vrolite,tblposts.Rejisior as rejisior,tblposts.Tags as tags,tblposts.Vremetraene as vremetraene,tblposts.DataSuzdavane as datasuzdavane,tblposts.Imdbrating as imdbrating,tblposts.Tags as tags,tblposts.PostImage,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostDetails as postdetails,tblposts.Video as video,tblposts.PostingDate as postingdate,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.id='$pid'");
while ($row=mysqli_fetch_array($query)) {
?>

Демек да добавя update в този код?
 
Vladislaw каза:
Ticketa каза:
Добавяш си една колона `views` при преглед на новината правиш UPDATE заявка с view+1

UPDATE `news` SET views = views +1 WHERE `news_id` = $id;

Добавил съм такава колона "count" и изкарвам резултата така:

Код:
<?php
$pid=intval($_GET['nid']);
 $query=mysqli_query($con,"select tblposts.PostTitle as posttitle,tblposts.id as pid,tblposts.Count as count,tblposts.Vrolite as vrolite,tblposts.Rejisior as rejisior,tblposts.Tags as tags,tblposts.Vremetraene as vremetraene,tblposts.DataSuzdavane as datasuzdavane,tblposts.Imdbrating as imdbrating,tblposts.Tags as tags,tblposts.PostImage,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostDetails as postdetails,tblposts.Video as video,tblposts.PostingDate as postingdate,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.id='$pid'");
while ($row=mysqli_fetch_array($query)) {
?>

Демек да добавя update в този код?

В цикъла while() добави UPDATE заявката и колкото пъти се отвори новината ще отчита +1 преглед.
 
Vladislaw каза:
Нещо май не правя както трябва, пробвах и така

$update=mysql_query("UPDATE `tblposts` SET count = count +1 WHERE `id` = $id;");

но грешка в страницата.

Използвай mysqli_* функциите, и задължително се подсигури, че $id е int:
Код:
WHERE `id` = " . (int) $id . ";"

Каква грешка получаваш иначе?
 
Код:
<?php 
     if (isset($_GET['pageno'])) {
            $pageno = $_GET['pageno'];
        } else {
            $pageno = 3;
        }
        $no_of_records_per_page = 5;
        $offset = ($pageno-1) * $no_of_records_per_page;


        $total_pages_sql = "SELECT COUNT(*) FROM tblposts";
        $result = mysqli_query($con,$total_pages_sql);
        $total_rows = mysqli_fetch_array($result)[0];
        $total_pages = ceil($total_rows / $no_of_records_per_page);


$query=mysqli_query($con,"select tblposts.id as pid,tblposts.Datasuzdavane as datasuzdavane,tblposts.Vremetraene as vremetraene,tblposts.Imdbrating as imdbrating,tblposts.PostTitle as posttitle,tblposts.PostImage,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostDetails as postdetails,tblposts.PostingDate as postingdate,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.Is_Active=1 order by tblposts.id desc  LIMIT $offset, $no_of_records_per_page");
while ($row=mysqli_fetch_array($query)) {
?>
 
С този код изкарвам новините

Код:
<?php
$pid=intval($_GET['nid']);
 $query=mysqli_query($con,"select tblposts.PostTitle as posttitle,tblposts.id as pid,tblposts.Count as count,tblposts.Vrolite as vrolite,tblposts.Rejisior as rejisior,tblposts.Tags as tags,tblposts.Vremetraene as vremetraene,tblposts.DataSuzdavane as datasuzdavane,tblposts.Imdbrating as imdbrating,tblposts.Tags as tags,tblposts.PostImage,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostDetails as postdetails,tblposts.Video as video,tblposts.PostingDate as postingdate,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.id='$pid'");
while ($row=mysqli_fetch_array($query)) {
?>
 
Защо не пробваш първо да пуснеш SQL заявка в phpmyadmin? Там доста по-подробно се сигнализират евентуалните грешки.
Примерно на заявка от вида "UPDATE `tblposts` SET count = count +1 WHERE `id` = 1;"
Ако всичко е ОК, то явно не е в това проблема...
 
как ги правите тия сайтове като една заявка не може да дебъгнеш?
website.png
 
Код:
<?php
$pid=intval($_GET['nid']);
 $query=mysqli_query($con,"select tblposts.PostTitle as posttitle,tblposts.id as pid,tblposts.Count as count,tblposts.Vrolite as vrolite,tblposts.Rejisior as rejisior,tblposts.Tags as tags,tblposts.Vremetraene as vremetraene,tblposts.DataSuzdavane as datasuzdavane,tblposts.Imdbrating as imdbrating,tblposts.Tags as tags,tblposts.PostImage,tblcategory.CategoryName as category,tblcategory.id as cid,tblsubcategory.Subcategory as subcategory,tblposts.PostDetails as postdetails,tblposts.Video as video,tblposts.PostingDate as postingdate,tblposts.PostUrl as url from tblposts left join tblcategory on tblcategory.id=tblposts.CategoryId left join  tblsubcategory on  tblsubcategory.SubCategoryId=tblposts.SubCategoryId where tblposts.id='$pid'");
while ($row=mysqli_fetch_array($query)) {
?>

Това е кода, няма повече.
Изкарвам резултатите така
<?php echo htmlentities($row['count']);?>
 
Дай да видим и структурата на базата.
Инак
Код:
count
е Reserved Words, пък и така само count не се знае какво броиш.
Смени го примерно на read_counts и така.
 

Горе