Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 16:13   #1
cobria2
Пользователь
 
Регистрация: 28.08.2010
Сообщений: 11
Вопрос Значение не увеличивается на заданное число

Задача: при загрузке страницы увеличить значение hits на единицу.

Проблема: значение увеличивается, но не на единицу, а на тройку... т.е.
после каждой загрузки страницы значение меняется: 0,3,6,9,12,15 и т.д.

PHP код:
$newhit $myrow["hits"] + 1;
mysql_query("UPDATE databasetable SET hits='$newhit' WHERE id='$myrow[id]' ",$db); 
cobria2 вне форума Ответить с цитированием
Старый 28.03.2011, 16:28   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Весь код выложите.
ssdm вне форума Ответить с цитированием
Старый 28.03.2011, 16:43   #3
cobria2
Пользователь
 
Регистрация: 28.08.2010
Сообщений: 11
По умолчанию

Там много лишнего HTML

Код HTML:
<?php include ("blocks/bd.php"); ?>
<?php if (isset ($_GET['art'])) {$art=$_GET['art'];}
$result = mysql_query ("SELECT * FROM dtabledata5 WHERE id = '$art' ",$db);

if (!result){echo "<p>Информация из БАЗЫ ДАННЫХ не может быть извлечена, всвязи с ошибкой.<br>
Пожалуйста, сообщите об ошибке администратору (e-mail: fspx@mail.ru) указав при этом <strong>код ошибки</strong><br>
<strong>КОД ОШИБКИ:</strong><br></p>"; exit (mysql_error());}
if (mysql_num_rows ($result)>0) {$myrow = mysql_fetch_array($result);
$newhit = $myrow["hits"] + 1; 
mysql_query("UPDATE databasetable SET hits='$newhit' WHERE id='$myrow[id]' ",$db);}
else {echo"<p>В БАЗЕ ДАННЫХ отсутствуют данные по Вашему запросу.</p>"; exit();} 
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru" dir="ltr" >
<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="jqui.css" rel="stylesheet" type="text/css" />
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jqui.js" type="text/javascript"></script>
<script src="js/scripts.js" type="text/javascript"></script>
<meta name="keywords" content="<?php echo "$myrow[rname] - $myrow[lname] $myrow[breed]"; ?>" />
<meta name="description" content="<?php echo "$myrow[rname] - $myrow[lname] $myrow[breed]"; ?>" />


<title><?  echo "$myrow[rname] - $myrow[lname] $myrow[breed]"  ?></title>

  
  <link href="/site/templates/yoo_royalplaza/favicon.ico" rel="shortcut icon" type="image/x-icon" />
  <link rel="stylesheet" href="/site/templates/yoo_royalplaza/css/template.css" type="text/css" />
  <link rel="stylesheet" href="/site/templates/yoo_royalplaza/css/variations/business.css" type="text/css" />
  
  <style type="text/css">
    <!--
.wrapper { width: 1220px; } 
#main-shift { margin-left: 225px; }
#left { width: 210px; }
#main-shift { margin-right: 225px; }
#right { width: 210px; margin-left: -420px; }
#menu .dropdown { width: 250px; }
#menu .columns2 { width: 500px; }
#menu .columns3 { width: 750px; }
#menu .columns4 { width: 1000px; }
#header {height: 300px; 

background: url("../images/header.png") 50% no-repeat; }


    -->
    <!--  wrapper-- ширина сайта
    main-shift-- отступ центрального блока
  # header   height---  высота шапки  -->
  </style>

</head>

<body id="page" class="yoopage column-left column-right  ">
<?php include ("blocks/bd.php");?>
	
	<div id="page-body">
		<div class="page-body-2">
			<div class="wrapper">
	
				<div id="header"><img  id="cyclop" src="../images/cyclop.png" />				
				<!--	<div id="toolbar">										
					</div>-->
					<!-- Зеленая менюшка -->
<div id="menubar">
<div class="menubar-1">
<div class="menubar-2">
<div class="menubar-3">
<div class="menubar-4">
</div>
</div>
</div>
</div>
</div>
<!-- Зеленая менюшка --><div id="date"><?echo "Просмотров: <span id='hits'></span><span id='thisid'>$myrow[id]</span>" ?></div>					
										<div id="menu">			<!--Формирование меню через ul li-->					</div>					
				</div>
				<!-- header end -->
	
<div class="wrapper-t1">
<div class="wrapper-t2">
<div class="wrapper-t3"></div>
</div>
</div>

<div class="wrapper-1">
<div class="wrapper-2">
<div class="wrapper-3">												
<div class="left-bg">
<div class="right-bg">					
<div id="middle">
<div id="middle-expand">					
<div id="main">
<div id="main-shift">																
<div class="contentleft-bg">
<div class="contentright-bg">
<div id="mainmiddle">
<div id="mainmiddle-expand">																
<div id="content">
<div id="content-shift">					
<div id="component" class="floatbox">
											
<div class="joomla ">
	<div class="blog">
<input type="button" value="111" id="butid" />
<h1 class="pagetitle">			Энциклопедия растений		</h1>

                    <!--ЗДЕСЬ СОДЕРЖИМОЕ СТРАНИЦЫ, не поместилось в лимит 5000 символов-->
</div>
</div>
</div>
</div>
</div>
<!-- content end -->
</div>
</div>
<!-- mainmiddle end -->
</div>
</div>
<div>
</div>

<div id="left"></div>

																						
<div id="right"></div></div></div></div></div></div></div></div></div><div class="wrapper-b1">
					<div class="wrapper-b2"><div class="wrapper-b3"></div></div>
				</div></div></div>Б/div>
	
	<div id="page-footer">
		<div class="page-footer-2">

			<div class="wrapper"></div>
		</div>
	</div>

</body>
</html>

Последний раз редактировалось cobria2; 28.03.2011 в 16:52.
cobria2 вне форума Ответить с цитированием
Старый 28.03.2011, 17:13   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Вы берете данные из dtabledata5 , а Update делаете для базы dtabledata . Так надо ?

Вместо этой строк
Код:
$newhit = $myrow["hits"] + 1;
.
Вставьте
Код:
echo $myrow["hits"];
$newhit = $myrow["hits"] + 1; 
echo $newhit;
Посмотрите что выводит скрипт.
ssdm вне форума Ответить с цитированием
Старый 28.03.2011, 17:27   #5
cobria2
Пользователь
 
Регистрация: 28.08.2010
Сообщений: 11
По умолчанию

На счет названий таблиц, всё нормально..

Тот код, что Вы предложили работает нормально т.е. значение по умолчанию для $myrow["hits"] равно 1, после прибавления единицы выдает 2...

Может почему-то страница грузится несколько раз и каждый раз добавляет по единице. Хотя я в конце страницы добавлял exit(), он ведь, если я правильно понимаю, прекращает работу и выполнение скриптов.
cobria2 вне форума Ответить с цитированием
Старый 28.03.2011, 17:41   #6
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Наверно глупый вопрос, но все таки.
Цитата:
после каждой загрузки страницы значение меняется: 0,3,6,9,12,15 и т.д.
А где вы это смотрите ?
ssdm вне форума Ответить с цитированием
Старый 28.03.2011, 17:56   #7
cobria2
Пользователь
 
Регистрация: 28.08.2010
Сообщений: 11
По умолчанию

после обновления (UPDATE.....) я выводил новое $myrow["hits"] в <div><?echo "Посмотров: $myrow[hits]"?></div>

Код:
$newhit = $myrow["hits"] + 1; 
mysql_query("UPDATE databasetable SET hits='$newhit' WHERE id='$myrow[id]' ",$db); 
echo "$myrow[hits]"
Наверное что-то в коде страницы неправильно... потому что реализовал реализовал функцию через ajax, вроде все работает...

JAVASCRIPT
Код:
$('#butid').click(function(){
    
    var hitid = $('#thisid').text();
    $.post(
   "ajax/updatehits.php",
   {id: hitid},
   function(data){$('#hits').text(data); alert('ghbdtn'); return false;}
   )
   
});
PHP
Код:
<?php include ("../blocks/bd.php");
if (isset ($_POST['id'])) {$id=$_POST['id'];};
$result = mysql_query("SELECT hits FROM dtabledata5 WHERE id='$id'",$db);
if (mysql_num_rows ($result)>0) {$myrow = mysql_fetch_array($result);}
$oldhit = $myrow["hits"];
$newhit = $oldhit + 1;
$update = mysql_query("UPDATE dtabledata5 SET hits='$newhit' WHERE id='$id'",$db);
echo "$newhit";
?>
Но все же интересно, в чем проблема......

Последний раз редактировалось cobria2; 28.03.2011 в 17:59.
cobria2 вне форума Ответить с цитированием
Старый 28.03.2011, 18:06   #8
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Что то я уже запутался.
Цитата:
На счет названий таблиц, всё нормально..

Тот код, что Вы предложили работает нормально т.е. значение по умолчанию для $myrow["hits"] равно 1, после прибавления единицы выдает 2...

Может почему-то страница грузится несколько раз и каждый раз добавляет по единице. Хотя я в конце страницы добавлял exit(), он ведь, если я правильно понимаю, прекращает работу и выполнение скриптов.
Тут вы говорите, что все нормально.

Тут
Цитата:
$newhit = $myrow["hits"] + 1;
mysql_query("UPDATE databasetable SET hits='$newhit' WHERE id='$myrow[id]' ",$db);
echo "$myrow[hits]"
- что не нормально.

Цитата:
<div id="date"><?echo "Просмотров: <span id='hits'></span><span id='thisid'>$myrow[id]</span>" ?></div>
<div id="menu"> <!--Формирование меню через ul li--> </div>
</div>
- выводите какие то просмотры , хотя $myrow[id] - id должен быть в кавычках + количество просмотров лежат в атрибуте hits.

И зачем вы два раза <?php include ("blocks/bd.php");?> - делаете ?
ssdm вне форума Ответить с цитированием
Старый 28.03.2011, 18:14   #9
cobria2
Пользователь
 
Регистрация: 28.08.2010
Сообщений: 11
По умолчанию

id в $myrow[id], когда он в <?echo" "?> вроде бы не надо в кавычки заключать... ну по крайней мере без кавычек работает хорошо...
А с сообщениями я уже и сам несколько запутался=) Проблему вроде решил, так что тему наверное закроем.

Спасибо за помощь и потраченное время!
cobria2 вне форума Ответить с цитированием
Старый 29.03.2011, 11:49   #10
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

id в $myrow[id] действительно лучше заключать в кавычки. Без них тоже будет работать, но с кавычками быстрее.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
все натуральные числа не превосходящие заданное число N и равное сумме кубов своих цифр. Julila Помощь студентам 42 03.03.2011 00:38
Создать программу замены четных элементов линейного массива на заданное число d MrJohanson Помощь студентам 3 26.01.2010 12:25
Программа, которая отгадывает заданное число vakich Помощь студентам 7 24.02.2009 19:13
является ли заданное натуральное число совершенным Савинова Помощь студентам 3 19.11.2008 09:51
в 1 книге копируется значение ячейки, номер которой каждый раз увеличивается на 1... Dr.Alex Microsoft Office Excel 2 29.10.2007 20:29