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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2014, 21:28   #1
semjaza
Новичок
Джуниор
 
Регистрация: 13.11.2014
Сообщений: 1
По умолчанию Счётчик кликов на php с последующим выводом(Codeigniter)

Делаю сайт и передо мной стала такая задача-сделать счётчик переходов по ссылке(чтобы считать кол-во просмотров статьи) и выводить кол-во в виде внутри блока. Работаю с Codeigniter. Соответственно имеется :
1.Контроллер Articles

class Articles extends CI_Controller {

PHP код:
function index()
    {
        
$this->load->model('articles_model');
        
$this->load->helper('text');
        
$data['pages'] = $this->pages_model->get_pages();
        
$data['pages_dop'] = $this->pages_model->get_pages_dop();
        
$data['pages_dop2'] = $this->pages_model->get_pages_dop2();
        
$data['pages_info'] = $this->pages_model->get_pages_info('articles');
        
$data['categories'] = $this->pages_model->get_cat();
        
$data['articles'] = $this->articles_model->get_all_articles($config['per_page'],$this->uri->segment(3));
        
$data['latest_articles'] = $this->pages_model->get_latest_articles();
        
$data['user'] = $this->session->userdata('user');
        
$data['user_info']['status'] = $this->session->userdata('status');
        
$data['user_info']['avatar'] = $this->session->userdata('avatar');
        
$name 'articles';
        
$this->template->page_view($data,$name);
    }
    
       

2.Модель Article

PHP код:
class Articles_model extends CI_Model {
 
    function 
get_all_articles($num$offset)
    {
        
$this->db->order_by('id','desc');
        
$query $this->db->get('articles',$num$offset);
        return 
$query->result_array();
    }
    
    function 
get_cat_articles($cat)
    {
        
$this->db->order_by('id','desc');
        
$this->db->where('category',$cat);
        
$query $this->db->get('articles');
        return 
$query->result_array();
    }
    
    function 
get_article($title)
    {
        
$this->db->where('title_en',$title);
        
$query $this->db->get('articles');
        return 
$query->row_array();
    }
    
    function 
add_comment($add)
    {
        
$this->db->insert('comments',$add);
    }
    
    function 
get_comments($title)
    {
        
$this->db->order_by('id','desc');
        
$this->db->where('note_id',$title);
        
$query $this->db->get('comments');
        return 
$query->result_array();
    }
    


3. Вид articles_view

Код:
<div class="middle">
        <!--Контейнер-->
		<div class="container">
			<main class="content"><!--Контент-->
                <?php foreach($articles as $item):?>
                    <div class="articles">
                        <div class="view_stat"><?=$item['views'];?></div><!--Колличество просмотров-->
                        <div class="zag_stat"><a href="<?=base_url();?>index.php/article/<?=$item['title_en'];?>"><?=$item['title'];?></a></div>
                        <div class="author_stat"><div><?=$item['author'];?></div></div>
                        <div class="date_stat"><div><?=$item['date'];?></div></div>
                        <div class="img_stat"><img src="<?=base_url();?>img/mini_img/<?=$item['mini_img'];?>" alt="<?=$item['title'];?>"/></div>
                        <?$string = $item['text'];?>
                        <div class="text_stat"><p><?=$string = character_limiter($string,780);?><span class="chitat"><a href="<?=base_url();?>index.php/article/<?=$item['title_en'];?>">Читать далее→</a></span></p></div>
                        <div class="both"></div>
                    </div>
                <?php endforeach;?>
                <div class="both"></div>
                <div class="pag"><?php echo $this->pagination->create_links();?></div>
			</main>
		</div>

Подскажите логику скрипта.В URL передаётся title_en каждой статьи из поля в таблице.

Проделал следующее
-В виде добавил селектор(id) для ссылки при клике на которую запуститься функция из модели;
-В модели добавил функцию которая добавляет клик к значению в базе;
-В контроллере создал условие что при клике на ссылку с селектором add_v происходит запуск функции из модели;

Вот код:
1.Вид

Код:
<a id="add_v" href="<?=base_url();?>index.php/article/<?=$item['title_en'];?>">Читать далее→</a></span></p></div>

2.Модель

PHP код:
function add_views($add_v)
    {
        
$click $this->db->where('views',$add_v);
        
$new_click $click 1;
        
$this->db->insert('articles',$new_click);
    } 

3.Контроллер

PHP код:
if($this->input->post('add_v'))
        {
            
$this->articles_model->add_views($add_v);
        } 

Подскажите что не так...сайт пропадает)Профи хэлп


Структура таблицы базы

Последний раз редактировалось semjaza; 13.11.2014 в 21:31.
semjaza вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счётчик промотров на php rpy3uH PHP 3 15.03.2014 14:45
Codeigniter и JS MrJenika PHP 2 11.12.2010 17:28
Выбор картинки из listBox с последующим выводом в pictureBox C# Авторитет Общие вопросы .NET 4 13.06.2010 10:57
Счётчик кликов (IP, Cookies или что то ещё?) amdbodia PHP 2 20.02.2010 13:41
Проблема с выводом SQL в PHP easy-to-kill PHP 2 02.08.2009 14:57