|
40.4 Кб |
|
| Хочу сделать счётчик просмотров, есть описание и ссылка на подробности и от того сколько нажата ссылка на подробности такое кол-во раз и увеличивать счётчик, только не на странице подробности, а на странице в которой находится ссылка на подробности,то есть как здесь например.
Написал так, но обновление идёт сразу на всех постах находящихся на странице, а не на
тех на которых нажал на кнопку подробнее зашёл на этот пост.
//Вывод постов
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 ' '.$postrow[$i]['text'].'<br/>';
}
|
| |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 00:56)
| | не понятен смысл применения цикла for, а тем более, зачем делать запросы к базе в цикле?
откуда берётся переменная id ? у Вас случаем register_globals не ON? откуда Вы берете $postrow, $num ? | |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 00:56)
| | Вот так на мой взгляд должно получится:
$prosmotrov = mysql_query("SELECT * FROM lessons");
$rez = mysql_fetch_array($prosmotrov);
$enlarge = $rez['obnovlenie']+1;
$obnovlenie_rez = mysql_query("UPDATE lessons SET obnovlenie = '$enlarge' where id = '$id' ");
echo 'Просмотров: '.$enlarge;
|
| |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 00:56)
| |
UPDATE lessons SET obnovlenie = obnovlenie + 1 WHERE id = $id
|
| |
|
|
|
|
|
|
|
для: neadekvat
(29.09.2010 в 15:05)
| | Написал так:
//Вывод постов
for($i = 0; $i < $num; $i++)
{
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
mysql_query('UPDATE `lessons` SET `obnovlenie` = `obnovlenie`+1 WHERE `id`='.$id);
echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo ' '.$postrow[$i]['text'].'<br/>';
}
|
Выдаёт:
Notice: Undefined variable: id in z:\home\sitik.ru\www\blocks\kontent.php on line 42
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: enlarge in z:\home\sitik.ru\www\blocks\kontent.php on line 43
А как тогда? | |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 16:14)
| | У вас идентефекатор(id) заметки в какой переменной? | |
|
|
|
|
|
|
|
для: akmal
(29.09.2010 в 16:18)
| | У меня ни в какой, у меня в базе данных просто поле называется id с первичным ключом,что прописать где нужно в моём случаи? | |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 16:19)
| | А как вы тогда заметку вытаскиваете? | |
|
|
|
|
|
|
|
для: akmal
(29.09.2010 в 16:21)
| | Весь код дайте | |
|
|
|
|
96.5 Кб |
|
|
для: akmal
(29.09.2010 в 16:23)
| | Вот вложил архивом. | |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 16:50)
| | Извините, но я так ничего и непонял....
Вы даете запрос на уроки:
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
|
После чего добавляете +1 просмотр, не показав саму заметку.... | |
|
|
|
|
|
|
|
для: akmal
(29.09.2010 в 17:19)
| | Пост №1
Назв. урока
Описание
Количество просмотров 0 Подробнее
_____________________________________________
Пост №2
Назв. урока
Описание
Количество просмотров 0 Подробнее
_____________________________________________
Пост №3
Назв. урока
Описание
Количество просмотров 0 Подробнее
Вот такое как сделать в моём случаи чтоб кнопка подробнее, после на её нажатие счётчик увеличивался? | |
|
|
|
|
|
|
|
для: Golovastik
(29.09.2010 в 17:44)
| | Нужно чтоб после нажатия на подробнее id поста передавался в другой документ (лучше через GET) после чего уже добавлять +1 к просмотру | |
|
|
|
|
|
|
|
для: akmal
(29.09.2010 в 20:05)
| | При нажатии на ссылку подробнее ссылаться на тот же файл videolessons/1.php?page=1 ? | |
|
|
|
|
101.4 Кб |
|
|
для: Golovastik
(29.09.2010 в 22:07)
| | Так я так и сделал, вот для теста написал в поле 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> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
Невероятный, потрясающий подарок всем, кто интересуется   <b>заработками в Сети!..</b>
</div>
<div> </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 ' '.$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.' '.implode(' ', $navigation).' '.$vpered;
?>
<!---------------------------------------------------------------------------->
</div> <!-- Закрываем контент-->
|
Ошибок нету, но ничего не выдаёт и счётчик не считает. | |
|
|
|
|
|
|
|
для: Golovastik
(04.10.2010 в 20:35)
| | что нужно куда передавать чтоб именно счётчик считал после перехода по ссылке подробнее? | |
|
|
|