брояч на импресии

stefan122

Registered
трябва ми нещо което да използвам за брой преглеждания

какво ще ми препоръчате?
 
Имаш си заявката SELECT, с която взимаш всичко. След това вадиш резултати като масив. Показах ти го в старата тема, която беше пуснал. Така вече ще можем да ползваме $row['neshto_si']
След това идва ред на това, което ти дадох. Ще го сложиш в цикъла while... Пак от старата тема.
Това е. С този код при всяко влизане ще се увеличава с +1 и ще се записва в db.
След това можеш да си извадиш импресиите чрез:
PHP:
echo $row['imp'];
 
Код:
$nums = mysql_query("SELECT * FROM `Таблицата` WHERE `id`='$_GET[id]'"); 
while ($row = mysql_fetch_array($nums)) { 
$klik = $row[klik]; 
$klik++; 
$sql = "UPDATE `Таблицата` SET klik='$klik' where id='$row[id]'"; 
mysql_query($sql);
Правиш едно поле klik в таблицата и така с всяко посещения на файла update +1 преглеждане :)
И после изкарваш Преглеждано $row[klik]
 
tedo96, броя на импресиите не се променя .. сеи си едно и също ..ако го променя ръчно пак си стой толкова ..
искам да попитам като създадох imp в БД какъв тип трябва да бъде? сега е varchar(255), кажи ако има значение ...


php_css, заради този код който ми даде ми изкарва грешка на последния ред
а там има само затварящ таг на таблица ...
 
Пробвай така:

PHP:
$nums = mysql_query("SELECT * FROM `Таблицата` WHERE `id`='$_GET[id]'"); 
while ($row = mysql_fetch_array($nums))
{ 
$klik = $row[klik]; 
$klik++; 
$sql = "UPDATE `Таблицата` SET klik='$klik' where id='$row[id]'"; 
mysql_query($sql);
}

Беше забравил да затвори цикъла (while). ;)
 
PHP:
$nums = mysql_query("SELECT * FROM `Таблицата` WHERE `id`='$_GET[id]'"); 
while ($row = mysql_fetch_assoc($nums))
{ 
$klik = $row[klik]; 
$klik++; 
$sql = "UPDATE `Таблицата` SET klik='$klik' where id='$row[id]'"; 
mysql_query($sql);
}
 
Каква е грешката?

Ето това е моя код:
PHP:
<?php
$query = "SELECT id, code, click, imp, razmer FROM banner WHERE razmer=1 ORDER BY RAND() LIMIT 1 ";
$result = mysql_query($query) OR die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo '
<a href="click.php?id='.$row[id].'">'.$row['code'].'</a>';
$update = mysql_query("UPDATE banner SET imp=imp+1 WHERE id ='$row[id]'");
}
?>
 
Кажи си характеристиката на таблицата. Редове, стойности и тн. Кодовете, които ти направихме трябва да работят!
 
ето експорт

CREATE TABLE IF NOT EXISTS `vicove` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ot` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL DEFAULT '',
`vic` varchar(255) NOT NULL DEFAULT '',
`date` varchar(55) NOT NULL DEFAULT '0',
`cat` varchar(255) NOT NULL DEFAULT 'Няма',
`odobren` int(50) NOT NULL DEFAULT '1',
`imp` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=19 ;

--
-- Dumping data for table `vicove`
--

INSERT INTO `vicove` (`id`, `ot`, `url`, `vic`, `date`, `cat`, `odobren`, `imp`) VALUES
(18, 'dsadsadsa', 'sdasdaasd', ' sdasasda', '9-3-2011, 14:09:23', 'Интернет', 1, 0);
 
намерих това:

CREATE TABLE `broiach` (
`id` TINYINT( 2 ) NOT NULL AUTO_INCREMENT ,
`broi` INT( 10 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ;

<?php
$user=\"\";
$password=\"\";
$database=\"\";
mysql_connect(localhost,$user,$password);
mysql_select_db($database) or die( \"Unable to select database\");
$result = mysql_query(\"UPDATE broiach SET broi = broi + 1\");
$result = mysql_query(\"SELECT * FROM broiach WHERE id=\'1\'\");
$row = mysql_fetch_array( $result );
echo \"Тази страница е презаредена \".$row[\'broi\']. \" пъти.\";
?>


=======================

Но имам проблем, като дам рефреш всички записи на всички ИД-та се променят с 1
 
Ползвам това.Направил съм го на един оделен файл и съм го инклуднал към footer на всяка страница.
PHP:
<?php
$data= date("d.m.y"); 
$database='базаданни';//база данни
$user='root';//user на базата данни
$password='парола';//пас на базата данни
$table='demobroiach';//име на таблицата 


mysql_connect("localhost",$user,$password);
mysql_select_db($database) or die( "Има проблем с базата данни");

$query_broi = "SELECT id FROM $table where data='$data' " ;
$result_broi = mysql_query($query_broi);
$poseshteniq_dnes=mysql_num_rows($result_broi);

echo "Посещения днес: ".$poseshteniq_dnes."<br/>";

$query_unic = "SELECT COUNT(id) AS ipsort FROM $table where data='$data' GROUP by ip" ;
$result_unic = mysql_query($query_unic);
$poseshteniq_unic_dnes=mysql_num_rows($result_unic);

echo "Уникални днес: ".$poseshteniq_unic_dnes."<br/>";





// определяме колко реда да ни показва. В случая 20 на страница.
$broinastranica = 100;

// от коя страница да почне да показва.Може да искаме да е от втора или от последна.
$pageNum = 1;

// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page'] 
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}

//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2
// ще покаже от 20 до 40-ти ред.
$redove = ($pageNum - 1) * $broinastranica;
//заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page']
$query = " SELECT* FROM $table order by id desc" .
" LIMIT $redove, $broinastranica";
$result = mysql_query($query) ;

echo "<table border=1>";
// print-ваме посочените редове в таблица.
while($row = mysql_fetch_array($result))
{
echo '<tr><td>'.$row['id'].'</td><td>'.$row['data'].'</td><td>'.$row['chas'].'</td><td>'.$row['ip'].
'</td><td>'.$row['browser'].'</td></tr>';
}

echo"</table>";


// проверяваме таблицата колко редове има
$query = "SELECT COUNT(id) AS numrows FROM $table";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];


$maxPage = ceil($numrows/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}
}



// създаване на ликовете [предишна] [следваща]
// както и линковете [първа] и [последна]


if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\"> [<<<<<] </a> ";

$parva = " <a href=\"$self?page=1\">[първа]</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\"> [>>>>>] </a> ";

$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}

// показваме
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;




mysql_close();
?>

[sql]

-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 11, 2011 at 12:12 PM
-- Server version: 5.1.41
-- PHP Version: 5.3.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `comment`
--

-- --------------------------------------------------------

--
-- Table structure for table `demobroiach`
--

CREATE TABLE IF NOT EXISTS `demobroiach` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`data` varchar(12) NOT NULL,
`chas` varchar(7) NOT NULL,
`ip` varchar(15) NOT NULL,
`browser` varchar(120) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Dumping data for table `demobroiach`
--
[/sql]
 

Back
Горе