Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Счётчик просмотров 
:(
    Опции темы
Golovastik
Дата 28.9.2010, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Хочу сделать счётчик просмотров, есть описание и ссылка на подробности и от того сколько нажата ссылка на подробности такое кол-во раз и увеличивать счётчик, только не на странице подробности, а на странице в которой находится ссылка на подробности,то есть как здесь например.

Написал так, но обновление идёт сразу на всех постах находящихся на странице, а не на
тех на которых нажал на кнопку подробнее зашёл на этот пост.
Код

//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
$enlarge = $rez['obnovlenie']+1;
$obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = '$enlarge' where  id = id ");
echo 'Просмотров: '.$enlarge;

if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';

}  



Это сообщение отредактировал(а) Golovastik - 28.9.2010, 23:58

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  clip_image002.jpg 40,43 Kb
PM MAIL   Вверх
bars80080
Дата 29.9.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



условие id = id всегда true, потому и обновление всем постам

надо $obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = '$enlarge' where  id = $id ");

только где эта переменная $id? наверняка в ссылке.

как ссылка "подробнее" выглядит?
PM MAIL WWW   Вверх
Golovastik
Дата 29.9.2010, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Ссылка выглядит так: 
<div align="right"> <a class="podrob" href="/videolessons/1_1.php">Подробнее </a><span class="skobki">>></span></div>
Она находится в базе данных в id = 1 во втором ид другая ссылка.
PM MAIL   Вверх
bars80080
Дата 29.9.2010, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Golovastik @  29.9.2010,  00:26 Найти цитируемый пост)
Она находится в базе данных в id = 1 во втором ид другая ссылка. 

а эта вторая ссылка ведёт в итоге на тот же скрипт или другой?
PM MAIL WWW   Вверх
Golovastik
Дата 29.9.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



2 ссылка находится в ид=2 и ведёт уже не на 1_1.php а на 1_2.php
PM MAIL   Вверх
bars80080
Дата 29.9.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



если ссылки ведут на разные файлы, то значит мы заранее знаем, какой id используется в каждом файле. то есть можем просто написать:

Код

//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
$enlarge = $rez['obnovlenie']+1;
$obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = '$enlarge' where  id=1");
echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
}  

в файле 1_1.php

Код

//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
$enlarge = $rez['obnovlenie']+1;
$obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = '$enlarge' where  id=2");
echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';


в файле 1_2.php



хотя конечно возникает вопрос: а зачем были сделаны файлы с одинаковым кодом? это же противоречит принципам программирования
PM MAIL WWW   Вверх
Golovastik
Дата 29.9.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Вы не поняли у меня вывод постов в одном файле пхп, то есть в KONTENT.PHP который подсоединяется в индекс при запуске index.php.
и выводятся список постов, а на одном из постов есть ссылка на подробное описание, как сделать чтоб при нажатии на эту ссылку отображалось сколько раз я посетил этот пост?

PM MAIL   Вверх
bars80080
Дата 29.9.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Golovastik @  29.9.2010,  14:50 Найти цитируемый пост)
Вы не поняли у меня вывод постов в одном файле пхп

я то понял, только вы почему-то на прямой вопрос 
Цитата(bars80080 @  29.9.2010,  00:37 Найти цитируемый пост)
вторая ссылка ведёт в итоге на тот же скрипт или другой? 

указали
Цитата(Golovastik @  29.9.2010,  00:43 Найти цитируемый пост)
2 ссылка находится в ид=2 и ведёт уже не на 1_1.php а на 1_2.php 

что файлы разные?



ответьте тогда, если вызвать

var_dump($_SERVER['REQUEST_URI']);

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

PM MAIL WWW   Вверх
Golovastik
Дата 29.9.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Вот вложил архивом, не получается сделать чтоб считалось кол-во просмотров после нажатия на кнопку просмотров на один из постов, именно после нажатия на кнопку Подробнее.
http://www.sharemania.ru/0196467
PM MAIL   Вверх
Sanchezzz
Дата 30.9.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



у тебя не задана переменая $id поэтому запрос неидет в ту степь куда тебе нужно.

если тебе нужно узнать id по имени файла то узнаешь так.
Код

$sqr = "1_2.php?id=1"; // $_SERVER['PHP_SELF'];

preg_match('/(.*)\.php/isu',$sqr , $math);     

print_r( $math);

print $math[1]; // выводим результат 1_2  думаю не сложно будет дальше 
$math =  explode('_' , $math[1]);   //$math[1] = будет 2 $math[0] будет = 1
$id = $math[1];


так тебе нужно было?




Это сообщение отредактировал(а) Sanchezzz - 30.9.2010, 13:34


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Golovastik
Дата 4.10.2010, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Код

если тебе нужно узнать id по имени файла то узнаешь так.


То есть для каждого поста, я имею ввиду для его подробного описания после нажатия на кнопку подробнее нужно отдельный файл пхп создавать, так все делают?
PM MAIL   Вверх
Golovastik
Дата 4.10.2010, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Написал так в коде:

Код
$prosmotrov = mysql_query("select * FROM lessons",$connect);
//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$rez = mysql_fetch_array($prosmotrov);
//$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
//echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
}


В базе данных для теста, такая запись в поле text.
Код

<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?>          
<div class="zagolovok_kyrsa">Заголовок 1</div>
</br>
<div align="justify" class="shrift">
Случилось то, чего <b>так долго ждали в Рунете,</b> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
Невероятный, потрясающий подарок всем, кто интересуется &nbsp <b>заработками в Сети!..</b>
</div>
<div>&nbsp;</div>
<div align="right"> <a class="podrob" href="/videolessons/1_1.php">Подробнее </a><span class="skobki">>></span></div>
<br />


Ошибок не выдаёт но счётчик не работает.
PM MAIL   Вверх
Sanchezzz
Дата 4.10.2010, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



1 проверти запрос в myPHPAdmin
2 где у тебя заполняется переменная $id


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Golovastik
Дата 4.10.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



А где нужно её заполнять, после того как нажал на кнопку подробнее? 
Как это должно примерно выглядеть, я имею виду значения передаваться от куда куда должно?
PM MAIL   Вверх
Sanchezzz
Дата 4.10.2010, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



блин я пишу твой сайт или ты ? или меня разводят на тролинг или что то тут другое.

Разумеется ты должен ее получить до запроса 
Код

<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?> 

чтобы твоя переменная имело значение а у тебя в коде получается что переменная пуста соответствен запрос не выполняется.

Код

print mysql_error(); //чтобы посмотреть ошибку запроса.



мне кажется тебе нужно прочитать книженцию, хотя бы самоучитель.

Это сообщение отредактировал(а) Sanchezzz - 4.10.2010, 14:10


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Golovastik
Дата 4.10.2010, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Я понял что до запроса, я имею ввиду, вот этот код:
Код

<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?> 

Этот код должен находится внутри файла на который я буду переходить после нажатия на кнопку "подробнее"?
PM MAIL   Вверх
bars80080
Дата 4.10.2010, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да
PM MAIL WWW   Вверх
Golovastik
Дата 4.10.2010, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Так я так и сделал, вот для теста написал в поле text в базе данных.
Код

<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?>          
<div class="zagolovok_kyrsa">Весь Азамат Ушанов - на одном DVD! (Видео-курсы)</div>
<br />
<div  align="center">
<a href="http://google.ru" target="_blank"><img class="foto_otstyp" src="/img/1_1.jpg" alt="Весь Азамат Ушанов - на одном DVD! (Видео-курсы)"  title="Весь Азамат Ушанов - на одном DVD! (Видео-курсы)" /></div>
</a>
<div align="justify" class="shrift">
Случилось то, чего <b>так долго ждали в Рунете,</b> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
Невероятный, потрясающий подарок всем, кто интересуется &nbsp <b>заработками в Сети!..</b>
</div>
<div>&nbsp;</div>
<div align="right"> <a class="podrob" href="/videolessons/1_1.php">Подробнее </a><span class="skobki">>></span></div>
<br />


А в коде уже вывожу посты так:
Код

<div id="center">
<?php 
include '../blocks/database.php';  /*Соединяемся с Базой Данных*/
?>

<div class="zagolovok">Список</div> <br />
        
<?php
//Число постов выводящих на странице
$num = 3;
@$page = $_GET['page'];
if(empty($page)){
$page = 1; 
}


$result = mysql_query("select COUNT(*) FROM lessons",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7  тогда 7*3-3=18  
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;  
$result = mysql_query("SELECT * FROM lessons LIMIT $start, $num",$connect);  
// В цикле переносим результаты запроса в массив $postrow  
while ($postrow[] = mysql_fetch_array($result,$connect)); 

/*--------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------*/
$prosmotrov = mysql_query("select * FROM lessons",$connect);
//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$rez = mysql_fetch_array($prosmotrov,$connect);
//$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
//echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
}


//------------------------------------------------
// Стрелка назад  
if($page>1)
$nazad= '<a class="knopka_nazad1" href= ./1.php?page='.($page-1).'>Назад</a>';
else $nazad= '<span class="knopka_nazad2">Назад</span>';
       
//Стрелка вперед  
if($page<$chislo_str)
$vpered = '<a class="knopka_vpered1" href= ../videolessons/1.php?page='.($page + 1).'>Вперёд</a>';
else $vpered= '<span class="knopka_vpered2">Вперёд</span>';

// Вывод меню  
$expand_to = 4; // сколько страниц должно показываться слева и справа от текущей
 
// начало и конец "соседних" страниц
$a = $page - $expand_to; if ($a < 1) $a = 1; 
$b = $page + $expand_to; if ($b > $chislo_str) $b = $chislo_str;
 
if ($a > 1) // надо ли показывать отдельно ссылку на первую и "..."
{
    $navigation[] = "<a href=\"./1.php?page=1\">1</a>";
    if ($a > 2) $navigation[] = "...";
}
 
// генерируем ссылки на "соседние" страницы
for ($i = $a; $i <= $b; $i++)
    $navigation[] = ($page == $i) ? '<span class="tek_str">'.$i.'</span>' : "<a class='str_nav' href=\"./1.php?page=$i\">$i</a>";
 
if ($b < $chislo_str) // надо ли показывать отдельно "..." и ссылку на последнюю
{
    if ($b < $chislo_str - 1) $navigation[] = '...';
    $navigation[] = "<a href=\"./1.php?page=$chislo_str\">$chislo_str</a>";
}
 
// выводим готовую навигацию
echo $nazad.'&nbsp;&nbsp;'.implode(' ', $navigation).'&nbsp;&nbsp;'.$vpered;
?>

<!---------------------------------------------------------------------------->
</div> <!-- Закрываем контент-->



Ошибок нету, но ничего не выдаёт и счётчик не считает.


Это сообщение отредактировал(а) Golovastik - 4.10.2010, 19:29

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  s.ru.rar 101,36 Kb
PM MAIL   Вверх
bars80080
Дата 4.10.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



в приведённом коде, единственный запрос update закомментирован. конечно, ничего не будет считать
PM MAIL WWW   Вверх
Golovastik
Дата 4.10.2010, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



что нужно куда передавать чтоб именно счётчик считал после перехода по ссылке подробнее?
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0988 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.