Mi stavo guardando intorno a SO e mi chiedevo come avrei potuto creare un post correlato o simile da mostrare sul mio sito web usando PHP & MySQL? Qual è un esempio di base su come farlo?Creazione di post correlati o simili usando PHP e MySQL
risposta
Utilizzando la ricerca di testo MATCH (col1,col2,...) AGAINST (expr [search_modifier])
cosa MySQL completa.
Diciamo che il tavolo è articles
e avete bisogno di trovare i commenti di un titolo di corrente postale. Fai così:
SELECT *, MATCH(title, body) AGAINST('$CurrentPostTitle') AS score
FROM articles
WHERE MATCH(title, body) AGAINST('$CurrentPostTitle')
ORDER BY score DESC LIMIT 5
Questo ti darà i primi 5 post correlati.
Ma prima ricordarsi di permesso di ricerca testo completo per le colonne di quel tavolo, eseguendo questa query:
ALTER TABLE articles ADD FULLTEXT (title, body);
[EDIT]: Perché non utilizzare per LIKE
: Chiarimento a OP:
Perché non darà risultati corretti. Diciamo che il tuo titolo attuale è "Music of 1980" e vuoi post correlati su questo. Ora, se usi LIKE
, appariranno solo i post contenenti ESATTAMENTE la sequenza di parole "Music of 1980". Tuttavia, se si utilizza MATCH ... AGAINST
, verranno visualizzati i post contenenti musica OR 1980. Inoltre, i messaggi che contengono sia musica e il 1980 apparirà in primo piano perché dà un SCORE
ad ogni risultato e noi siamo l'ordinamento per quella speranza score.I questo è chiaro.
[EDIT]: 2:
Se si dispone di categorie, è possibile aggiungere AND Category = '$CurrentCategory'
nella query SQL where clause
per ottenere risultati più specifici.
[EDIT]: 3: OP non può usare Testo integrale:
Se non è possibile utilizzare testo completo (per qualche ragione), si può solo mostrare 5 messaggi casuali della stessa categoria. Come sono in stessa categoria, sono in qualche modo legati almeno:
SELECT *
FROM articles
WHERE Category = '$CurrentCategory'
LIMIT 5
A cura di sintassi: cambiato LIMTI a limitare, in codice MySQL
Posso usare LIKE invece di FULLTEXT? – leftout
@leftout, ho aggiornato la risposta. – shamittomar
Ma cosa succede se non posso usare la ricerca FULLTEXT scusa per tutte le domande. – leftout
- 1. Creazione di dump wordpress (.wxr) usando unix e mysql
- 2. Creazione di più tabelle MySQL utilizzando PHP
- 3. MySQL e PHP - Creazione di più relazioni padre figlio
- 4. Permetti il mapping di tipi dinamici usando AutoMapper o simili?
- 5. Data MySQL o ora PHP?
- 6. RAW POST usando cURL in PHP
- 7. Leggere il POST JSON usando il PHP
- 8. Come trovare "articoli correlati" in PHP
- 9. Posso esporre dati MySQL usando PHP e OData?
- 10. Inserimento di un post in Wordpress usando MySql
- 11. UIActivityIndicatorView o simili
- 12. Creazione del sistema di codici sconto (MySQL/php)
- 13. PHP e (isset ($ _ POST [''])) problema
- 14. Creare oggetto nidificato json usando php mysql
- 15. Come iterare un "Link correlati" usando C#
- 16. Creazione di una funzione php per restituire risultati mysql
- 17. Paginazione di bootstrap con PHP e MySQL
- 18. creazione di moduli di estensione PHP C/C++ usando SWIG
- 19. Creazione di un'API pubblica protetta con PHP/MYSQL
- 20. Trova oggetti correlati e relazione di visualizzazione
- 21. Come contare interessi simili in MySQL
- 22. SPSS e PHP/MySQL integrazione
- 23. Come cancellare tutti i record correlati da diverse tabelle MySQL
- 24. php e mysql, best practice
- 25. MySQL stored procedure o codice php?
- 26. Business Logic in PHP o MySQL?
- 27. set di caratteri tra PHP e MySQL
- 28. - include dettagli oggetto correlati o solo ID
- 29. Creazione e download di CSV con PHP
- 30. Timestamp MySQL solo su creazione
Hai bisogno di essere più specifico. Che tipo di dati hai e come definisci un "post simile"? – casablanca
@casablanca Ho tag, categorie e post con titoli e contenuto del corpo se questo è ciò che stai prendendo? – leftout