Pregunta

Tengo un sitio Joomla que estoy desarrollando y soy un novato en lo que respecta a MySql.Necesito poder realizar un seguimiento de cuántos artículos ha visto un usuario y luego poder mostrar el número total de artículos vistos en la parte frontal de la página (por ejemplo, si el usuario ha visto 3 artículos, debería simplemente reflejar el valor '3' al extremo frontal).

También me gustaría poder almacenar la identificación y el alias del artículo y poder recuperar esos datos más adelante si es necesario.La idea es que cualquier usuario en particular pueda ver cuántos artículos ha visto y posiblemente incluso pueda regresar y revisar esos artículos (ya que ya no se mostrarán una vez vistos).

No tengo la menor idea de por dónde empezar en cuanto a construir la tabla para almacenar estos datos y cómo unirlos al usuario actual.Cualquier ayuda sería muy apreciada, incluso si solo me indica un buen tutorial o recurso.

¿Fue útil?

Solución

Hay tres enfoques, creo:

Tienda Todos los ID de artículos vistos en la nueva columna en la tabla de usuarios
Puede agregar una columna a su tabla de usuario para almacenar los artículos visuales. Puede almacenar los ID de artículos como valores separados por comas. Cada vez que se ve un nuevo artículo, puede agregar un nuevo ID de artículo. En la parte frontal, puede recuperar esta cadena con una declaración de selección y analizarla para obtener las ID individuales.

Este método puede no ser práctico con un CMS, como Joomla, ya que agregar a las columnas a las tablas del sistema está solicitando problemas.

nueva tabla con una fila por usuario
Usted crea una nueva tabla de dos columnas, una columna tiene la ID de usuario y la otra tiene la lista de artículos visuales separados por comas. Habría una relación 1-0 entre la tabla de usuarios existente y la nueva tabla.

Una única única le permitirá recuperar los artículos visuales asociados con el usuario asociado.

nueva tabla con una fila por combinación de usuario / artículo
Usted crea una nueva tabla de historial de dos columnas que almacena al usuario y un solo ID de artículo visto. Si un usuario ha visto diez artículos, habrá diez filas.

Recuperación de los artículos vistos para un usuario determinado toma algún trabajo, ya que tiene que tirar de todas las filas para ese usuario y iterar a través de ellos.

Editar - Código de muestra:

<?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>';

?>

Usted pondría en su MySQL DB y Credenciales en la matriz de CONFIG.

Otros consejos

Un buen enfoque es utilizar un módulo para mostrar los datos y un complemento para almacenarlos.

Para realizar un seguimiento de los artículos vistos por un usuario, comience con el Documentación de Joomla para el desarrollo de complementos. y busque complementos de contenido.Este complemento debe almacenar, al menos, el identificador de usuario y el identificador de artículo en una tabla (llámelo articleviews) creado especialmente para este complemento.

Para construir un módulo, consulte el desarrollo del modulo joomla.En este módulo cargará los datos almacenados con el complemento desde el articleviews mesa.Recuerde indexar la tabla por identificador de usuario; de lo contrario, anulará su respuesta web a medida que crezcan los datos.

EDITAR:El identificador del artículo también debe formar parte del índice.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top