Не работает UPDATE. Как быть?

219
13 апреля 2018, 15:55

Всем доброго времени суток. Понадобился код-счетчик посещений. Нашел в интернете туториал, но вот код почему-то не работает.

Вот SQL

CREATE TABLE `pageview` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `page` text NOT NULL, 
 `userip` text NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 
 
 
// totalview 
 
CREATE TABLE `totalview` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `page` text NOT NULL, 
 `totalvisit` text NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

<?php 
  $host="localhost"; 
  $username="root"; 
  $password=""; 
  $databasename="sample"; 
 
  $connect=mysql_connect($host,$username,$password); 
  $db=mysql_select_db($databasename); 
 
  // gets the user IP Address 
  $user_ip=$_SERVER['REMOTE_ADDR']; 
 
  $check_ip = mysql_query("select userip from pageview where page='yourpage' and userip='$user_ip'"); 
  if(mysql_num_rows($check_ip)>=1) 
  { 
	 
  } 
  else 
  { 
    $insertview = mysql_query("insert into pageview values('','yourpage','$user_ip')"); 
	$updateview = mysql_query("update totalview set totalvisit = totalvisit+1 where page='yourpage' "); 
  } 
?> 
 
<html> 
<head> 
</head> 
 
<body> 
  <?php 
    $stmt = mysql_query("select totalvisit from totalview where page='yourpage' "); 
  ?> 
 
  <p>This page is viewed <?php echo mysql_num_rows($stmt);?> times.</p> 
 
</body> 
</html>

Любое посещение в таблице "pageview" отмечается. И добавляет все как надо. Однако не суммирует уникальные посещения почему-то в таблице "totalview". Вообще глухо.

Уже как только не перепробовал, и отдельно создавал чисто пустую страницу под туториаловский код. Сетовал на то, что мог мой код как-то конфликтовать. Без изменений.

Думал даже почистить куки, поскольку говорили, что может быть проблема в этом, но нет.

Что скажете?

Заранее спасибо.

Answer 1

Думаю у вас тут ошибка:

$updateview = mysql_query("update totalview set totalvisit = totalvisit+1 where page='yourpage' ");

Нужно, разбить на два запроса:

  1. Выбрать totalview
 $totalview = mysql_num_rows(
  mysql_query(
   "select totalvisit from totalview where page='yourpage'"
 )
)
  1. Добавить 1 вход пользователя
$totalview++;
  1. Обновить поле в таблице.
mysql_query("update totalview set $totalvisit where page='yourpage' ")
READ ALSO
Не подключается к ratched на Yii2

Не подключается к ratched на Yii2

Не знаю как подключится к серверу websocket на Yii2Делал все по инструкции:

289
Запуск скрипта php в nw.js [требует правки]

Запуск скрипта php в nw.js [требует правки]

Возможно запустить php в nwjs?

224
Как вывести данные из столбца?

Как вывести данные из столбца?

Есть несколько записей, под каждой кнопка, одна и тажеЖмём кнопку под любой записью, выводится колонка more именно для этой записи

272
Права доступа на php файл с паролем БД

Права доступа на php файл с паролем БД

Храню логин и пароль к базе в файле connectionphp, он лежит на уровень выше корневой директории сайта

237