Domanda

Ho un sito Joomla che sto sviluppando e sono un principiante quando si tratta di mysql.Devo essere in grado di tenere traccia del numero di articoli che un utente ha visualizzato e quindi essere in grado di visualizzare il numero totale di articoli visualizzati sulla parte anteriore della pagina (ad esempio se l'utente ha visualizzato 3 articoli, dovrebbe solo eco il valore'3' alla parte anteriore).

Mi piacerebbe anche essere in grado di memorizzare l'ID dell'articolo e l'alias ed essere in grado di recuperare i dati più tardi se necessario.L'idea è che qualsiasi particolare utente sarà in grado di vedere quanti articoli hanno visto e possibilmente essere in grado di tornare indietro e rivedere quegli articoli (in quanto non saranno più visualizzati una volta visualizzati).

Non ho la più debole idea di dove iniziare per quanto riguarda la costruzione del tavolo per archiviare questi dati e come unirti all'utente corrente.Qualsiasi aiuto sarebbe molto apprezzato, anche se mi sta solo indirizzando a un buon tutorial o risorsa.

È stato utile?

Soluzione

Ci sono tre approcci, credo:

Store Tutti gli ID dell'articolo visualizzati nella nuova colonna nella tabella utente

Puoi aggiungere una colonna alla tabella utente per memorizzare gli articoli visualizzati. È possibile memorizzare gli ID dell'articolo come valori separati da virgole. Ogni volta che è visualizzato un nuovo articolo, puoi aggiungere un nuovo ID articolo. Sul front-end, è possibile recuperare questa stringa con un'istruzione Select e analizzalo per ottenere i singoli ID.

Questo metodo potrebbe non essere pratico con un CMS come Joomla come aggiungere alle colonne alle tabelle di sistema richiede problemi.

Nuova tabella con una riga per utente

Si crea una nuova tabella a due colonne, una colonna ha l'ID utente e l'altro ha l'elenco separato da virgola degli articoli visualizzati. Ci sarebbe una relazione 1-0 tra la tabella utente esistente e la nuova tabella.

Un semplice join ti consentirà di recuperare gli articoli visualizzati associati all'utente associato.

Nuova tabella con una riga per utente / combinazione articolo
Si crea una nuova tabella di cronologia a due colonne che memorizza l'utente e un ID articolo singolo visualizzato. Se un utente ha visualizzato dieci articoli, ci saranno dieci righe.

Recupero degli articoli visualizzati per un determinato utente prende un po 'di lavoro in quanto devi tirare in tutte le righe per quell'utente e iterano attraverso di loro.

Modifica - Codice campione:

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

?>
.

Si inserirebbe nel tuo DB MySQL e nelle credenziali nell'array $ Config.

Altri suggerimenti

Un buon approccio è quello di utilizzare un modulo per mostrare i dati e un plugin per archiviarlo.

Per tracciare gli articoli visualizzati da un utente inizia con il Documentazione Joomla per lo sviluppo del plugin. eCerca plug-in di contenuti. Questo plug-in dovrebbe archiviare, almeno, l'identificativo dell'utente e l'identificatore dell'articolo su una tabella (chiamarlo articleviews) creato appositamente per questo plugin.

Per costruire un modulo Controllare Sviluppo del modulo Joomla .Su questo modulo caricherete i dati memorizzati con il plug-in dalla tabella articleviews.Ricordarsi di indicizzare la tabella per identificatore dell'utente, altrimenti ucciderà la tua risposta web come cresce dati.

Modifica: anche l'identificatore dell'articolo dovrebbe essere parte dell'indice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top