За последние 24 часа нас посетили 49194 программиста и 1805 роботов. Сейчас ищут 942 программиста ...

Счётчик просмотров

Тема в разделе "PHP для новичков", создана пользователем Golovastik, 29 сен 2010.

  1. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    Хочу сделать счётчик просмотров, есть описание и ссылка на подробности и от того сколько нажата ссылка на подробности такое кол-во раз и увеличивать счётчик, только не на странице подробности, а на странице в которой находится ссылка на подробности,то есть как здесь например.

    Написал так, но обновление идёт сразу на всех постах находящихся на странице, а не на
    тех на которых нажал на кнопку подробнее зашёл на этот пост.
    Код (Text):
    1.  
    2. //Вывод постов
    3. for($i = 0; $i < $num; $i++)  
    4. {  
    5. $prosmotrov = mysql_query("select * FROM lessons",$connect);
    6. $rez = mysql_fetch_array($prosmotrov);
    7. $enlarge = $rez['obnovlenie']+1;
    8. $obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = '$enlarge' where  id = id ");
    9. echo 'Просмотров: '.$enlarge;
    10.  
    11. if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
    12.  
    13. }  
    [​IMG]
     
  2. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    ну еще бы оно не шло:

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

    этот запрос говорит мускулю: обнови все (условие id=id) строки таблицы lessons, присвой значение $enlarge колонке obnovlenie.

    поищи в коде поблизости id просматриваемой позиции и сделай так:

    PHP:
    1. $obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = obnovlenie + 1  where  id = ".$id);
    где $id - переменная, которую ты найдешь
     
  3. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    Вот вложил архивом, не получается сделать чтоб считалось кол-во просмотров после нажатия на кнопку просмотров на один из постов, именно после нажатия на кнопку Подробнее.
    http://www.sharemania.ru/0196467"]http://www.sharemania.ru/0196467
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Golovastik
    Не надо выкладывать архивом.
    Заходите в скрипт, где у вас формируется страница с "подробнее" и уже внутри него указываете код, который вам дал engager. А из файла где формируются посты:

    Уберите тут запрос для обновления
    Выбирайте из базу только то поле, которое вам нужно (в данном случае obnovlenie)
     
  5. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    Написал так в коде:

    Код (Text):
    1. $prosmotrov = mysql_query("select * FROM lessons",$connect);
    2. //Вывод постов
    3. for($i = 0; $i < $num; $i++)  
    4. {  
    5. $rez = mysql_fetch_array($prosmotrov);
    6. //$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
    7. //echo 'Просмотров: '.$enlarge;
    8. if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
    9. }
    В базе данных для теста, такая запись в поле text.
    Код (Text):
    1.  
    2. <?php
    3. $enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
    4. ?>       
    5. <div class="zagolovok_kyrsa">Заголовок 1</div>
    6. </br>
    7. <div align="justify" class="shrift">
    8. Случилось то, чего <b>так долго ждали в Рунете,</b> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
    9. Невероятный, потрясающий подарок всем, кто интересуется &nbsp <b>заработками в Сети!..</b>
    10. </div>
    11. <div>&nbsp;</div>
    12. <div align="right"> <a class="podrob" href="/videolessons/1_1.php">Подробнее </a><span class="skobki">>></span></div>
    13. <br />
    Ошибок не выдаёт но счётчик не работает.[/code]

    http://www.sharemania.ru/0233102
     
  6. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    Кто-нибудь живой есть?
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    есть есть, это что такое?
    UPD: "Весь Азамат Ушанов на одном DVD"
    Ахахаххахахахаха :D
     
  8. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    Ребят, этот код для теста, не получается, подскажите, что в коде нужно исправить,что поменять на что?
     
  9. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    что нужно куда передавать чтоб именно счётчик считал после перехода по ссылке подробнее?
     
  10. MARTUN

    MARTUN Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    5
    Симпатии:
    0
    Да это же елементарно Ватсон)) ПХП вытаскивает из базы страое значение obnovlenie и заменяет на новое obnovlenie+1
     
  11. MARTUN

    MARTUN Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    5
    Симпатии:
    0
    С верху в условии у тебя должно быть id=$id ну, а еще выше эта $id должна как бы существовать.
    Если ты обращаешся к файлу у тебя, если это пхп ссылка выглядит где-то так
    " href='view_post.php?id=3'"
    Далее у тебя есть эта переменная, у меня $id=3 но ты же передавал эту айди через строку по этому у тебя есть $_GET('id') в теории этого должно хватить, но, лучше их прировняй, в конечном итоге получится должно где-то так:
    PHP:
    1. <?php
    2. $id=isset($_GET['id'])?$_GET['id']:null;
    3. if(empty($id)){echo"Вы обратились к файлу без параметра";}
    4. else{$prosmotrov = mysql_query("select * FROM lessons",$connect);
    5. $rez = mysql_fetch_array($prosmotrov);
    6. $new_view = $rez['obnovlenie']+1;
    7. $enlarge = mysql_query("UPDATE lessons SET obnovlenie = $new_view  WHERE id=$id",$connect);
    8. if($enlarge=='true'){echo "Скрипт сработал,обновите страницу для проверки его работоспособности!!!<br>";
    9. echo "Просмотров: $new_view";}
    10. else{echo "Есть трабла, может даже моя, но увы, хочу спать, остальное завтра!";}
    11. }
    12. ?>