Присоединение к таблицам в MySQL для хранения Просмотренная статья ID
Вопрос
У меня есть сайт Joomla, который я работаю, и я новичок, когда дело доходит до MySQL.Мне нужно уметь отслеживать, сколько статей просмотрели пользователь, а затем смогут отображать общее количество просмотренных статей на переднем конце страницы (например, если пользователь просмотрел 3 статьи, он должен просто повторить значение«3» на передний конец).
Я также хотел бы иметь возможность хранить идентификатор статьи и псевдонима и иметь возможность получить эти данные позже при необходимости.Идея состоит в том, что любой конкретный пользователь сможет увидеть, сколько статей они просматривали и, возможно, даже смогут вернуться и просмотреть эти статьи (поскольку они больше не будут отображаться после просмотра).
У меня нет слабое представление о том, где начать настолько далеко, как строить таблицу для хранения этих данных, и как присоединиться к этому к текущему пользователю.Любая помощь была бы очень ценится, даже если она просто указывает на хороший учебник или ресурс.
Решение
Есть три подхода, я верю:
Этот метод может не быть практичным с помощью CMS, таких как Joomla, как добавление к столбцам в системные таблицы, просит неприятностей.
<Сильная> Новая таблица с одной строкой на пользователя
Вы создаете новую таблицу двух столбцов, один столбец имеет идентификатор пользователя, а другой имеет список разделенного запятыми список просмотренных статей. Между существующей таблицей пользователей и новой таблицей.
Простое соединение позволит вам получить просмотренные статьи, связанные со связанным пользователем.
Вы создаете новую двухфункциональную историю истории, которая хранит пользователя и единый идентификатор статьи. Если пользователь просмотрел десять статей, будет десять строк.
Восстановление просмотренных изделий для данного пользователя принимает некоторую работу по мере необходимости во всех строках для этого пользователя и итерации через них.
<?php
$config['db'] = array (
'host' => '',
'username' => '',
'password' => '',
'dbname' => ''
);
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname='.$config['db']['dbname'],$config['db']['username'],$config['db']['password']);
$query = $db->query("SELECT user_id, article_id FROM viewed_articles WHERE user_id = 1234");
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>',print_r($rows,true),'</pre>';
?>
.
Вы бы поставили в свой MySQL DB и учетные данные в массиве $ Config.
Другие советы
Хороший подход - использовать модуль, чтобы показать данные и плагин для его хранения.
Чтобы отслеживать статьи, просматриваемые пользователем, начнем с Документация Joomla для разработки плагинов. иИщите плагины контента.
Этот плагин должен хранить, по крайней мере, пользовательский идентификатор и идентификатор статьи на таблице (вызовите ее articleviews
), созданный специально для этого плагина.
Чтобы построить модуль Проверьте флажок Разработка модуля Joomla .На этом модуле вы загрузите данные, хранящиеся с плагином из таблицы articleviews
.Не забудьте индексировать таблицу пользовательским идентификатором, в противном случае он убьет ваш веб-ответ в качестве данных.
Редактирование: Идентификатор статьи должен быть частью индекса тоже.