Присоединение к таблицам в MySQL для хранения Просмотренная статья ID

StackOverflow https://stackoverflow.com//questions/24030206

Вопрос

У меня есть сайт Joomla, который я работаю, и я новичок, когда дело доходит до MySQL.Мне нужно уметь отслеживать, сколько статей просмотрели пользователь, а затем смогут отображать общее количество просмотренных статей на переднем конце страницы (например, если пользователь просмотрел 3 статьи, он должен просто повторить значение«3» на передний конец).

Я также хотел бы иметь возможность хранить идентификатор статьи и псевдонима и иметь возможность получить эти данные позже при необходимости.Идея состоит в том, что любой конкретный пользователь сможет увидеть, сколько статей они просматривали и, возможно, даже смогут вернуться и просмотреть эти статьи (поскольку они больше не будут отображаться после просмотра).

У меня нет слабое представление о том, где начать настолько далеко, как строить таблицу для хранения этих данных, и как присоединиться к этому к текущему пользователю.Любая помощь была бы очень ценится, даже если она просто указывает на хороший учебник или ресурс.

Это было полезно?

Решение

Есть три подхода, я верю:

Store все просмотренные идентификаторы статьи в новом столбце в таблице пользователей Вы можете добавить столбец к вашей таблице пользователя, чтобы сохранить просмотренные статьи. Вы можете хранить идентификаторы статьи как значения, разделенные запятыми. Каждый раз, когда появляется новая статья, вы можете добавить новый идентификатор статьи. На интерфейсе вы можете получить эту строку с помощью оператора выбора и анализировать его, чтобы получить отдельные идентификаторы.

Этот метод может не быть практичным с помощью CMS, таких как Joomla, как добавление к столбцам в системные таблицы, просит неприятностей.

<Сильная> Новая таблица с одной строкой на пользователя

Вы создаете новую таблицу двух столбцов, один столбец имеет идентификатор пользователя, а другой имеет список разделенного запятыми список просмотренных статей. Между существующей таблицей пользователей и новой таблицей.

Простое соединение позволит вам получить просмотренные статьи, связанные со связанным пользователем.

Новая таблица с одной строкой на комбинацию пользователя / статьи
Вы создаете новую двухфункциональную историю истории, которая хранит пользователя и единый идентификатор статьи. Если пользователь просмотрел десять статей, будет десять строк.

Восстановление просмотренных изделий для данного пользователя принимает некоторую работу по мере необходимости во всех строках для этого пользователя и итерации через них.

EDIT - Образец кода:

<?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.Не забудьте индексировать таблицу пользовательским идентификатором, в противном случае он убьет ваш веб-ответ в качестве данных.

Редактирование: Идентификатор статьи должен быть частью индекса тоже.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top