Originariamente inviato da luigi87
Ciao, grazie per la risposta, la tua spiegazione mi sembra abbastanza logica ma non ho capito bene cosa devo fare....
Mi sarei stupito del contrario: sono stato tutto fuorché chiaro,
Per fare quello che dici devo utilizzare un database con una tabella utente in cui memorizzo le loro preferenze?
E poi come faccio a catalogare le pagine come le più visitate da un determinato utente e proporle alla stesso?
Non so se è il modo migliore, ma io lo farei con una tabella relazionata a quella utente in cui mi segno le pagine che un utente ha visitato ed il numero di volte che le ha viste. In questo modo mi basta fare una SELECT ... ORDER BY visit DESC per ottenere le pagine in ordine di visita (dalla più visitata alla meno)

A questo punto devi pensare di relazionare le pagine tra loro, magari con una Tabella Consiglio:

codice:
CREATE TABLE Consiglio (
  id NOT NULL AUTO_INCREMENT,
  id_pagina INT NOT NULL,
  id_pagina_consigliata INT NOT NULL,
  PRIMARY KEY(id)
)
in id_pagina metti l'id della pagina ed in id_pagina consigliata metti l'id della pagina consigliata. Per esempio se la pagina pippo (id = 1), consiglia la visione della pagina gigi (id = 2) e della pagina gianni (id = 3), avrai 2 righe in Consiglio:

codice:
id | id_pagina | id_pagina_consigliata
1        1               2
2        1               3
Di modo che se sono nella pagina pippo posso sapere le pagina consigliate, con

SELECT * FROM Consiglio INNER JOIN Pagina ON Consiglio.id_pagina_consigliata = Pagina.id WHERE Consiglio.id_pagina = $id_pagina_corrente

Poi, quando crei o modifichi la pagina devi calcolarti le relazioni con le altre pagine nel sistema, e popolare la tabella Consiglio.