Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: notizie correlate

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    notizie correlate

    ciao, in un sito vengono visualizzati degli articoli su vari argomenti, ogni articolo ha dei metatag, ad esempio un articolo sulla moda ha come parole chiave (fendi, scarpe, fashion, milano).
    Ora vorrei che in quella pagina dove si vede questo articolo, in basso, ci fosse un elenco di altri articoli che al loro interno abbiano una o più parole chiave uguali a quell'articolo.

    Come devo fare?
    Che devo fare un array? Ma come confrontare i due array dei 2 articoli?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    io ho un campo nei record relativi agli articoli chiamato tag
    scompatti questo campo con implode in modo che in ogni posizione dell'array possieda un tag dell'articolo

    poi fai una query dove interroghi la tua tabella in modo che il tag deve essere uguale ai tag negli array
    se il risultato positivo mostra....
    io ho messo pure 5 articoli casuali...quindi order by rand

    ho fatto una cosa del genere
    Codice PHP:
    if(trim($tag) != ""){
    $tagdefinitiviimplode("%' OR tag LIKE '%"$tag_def);
    $tagdefinitivi"'%".$tagdefinitivi."%'";


    $vedianchemysql_query("SELECT * FROM articoli WHERE tag LIKE $tagdefinitivi ORDER BY rand() LIMIT 8"); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Sì anch'io ho creato un campo e l'ho chiamato tag, ma poi non saprei fare il resto

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ah ok grazie, ora gli do un'occhiata

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    oppure usi foreach per processare l'array....forse è meglio ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    scusami ho saltato in parte il codice
    allora più correttamente
    Codice PHP:
    $tag_defexplode("@@",$tag);
    if(
    trim($tag) != ""){
    $tagdefinitiviimplode("%' OR tag LIKE '%"$tag_def);
    $tagdefinitivi"'%".$tagdefinitivi."%'";


    $vedianchemysql_query("SELECT *FROM articoli WHERE tag LIKE $tagdefinitivi ORDER BY rand() LIMIT 8"); 
    io le @@ le usi per saparare i tag invece degli spazi pechè se ci sono espressioni di due parole se uso lo spazio me li divide ma a me non serviva questo risultato...

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie mille dell'aiuto, e se nel campo dei tag ho delle parole separate da una virgola e da uno spazio o solo da una virgola o solo da uno spazio?

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ok gli spazi li levi con trim ma le virgole?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ok ho fatto così ora controllo se funziona


    Codice PHP:
    <?php 

    $tag 
    $row['metatag'];

    $tag_defexplode("@@",$tag);
    if(
    trim($tag) != ""){
    $tagdefinitiviimplode("%' OR tag LIKE '%"$tag_def);
    $tagdefinitivi"'%".$tagdefinitivi."%'";



       
                
    $query_15="SELECT c_art_articolo.*, c_art_categoria.*, c_art_sottocategoria.*, c_art_posizione1.*, c_art_posizione2.*,
                    c_art_posizione1.nome_posizione AS nome_posizione1, c_art_posizione2.nome_posizione AS nome_posizione2, DATE_FORMAT(c_art_articolo.data_ins_adm, '%d-%m-%Y') AS data_ins_adm    

                    FROM (c_art_articolo 
                
                    INNER JOIN c_art_categoria
                    ON c_art_articolo.id_art_categoria = c_art_categoria.id_art_categoria 
                    
                    INNER JOIN c_art_sottocategoria
                    ON c_art_articolo.id_art_sottocategoria = c_art_sottocategoria.id_art_sottocategoria) 
                    
                    INNER JOIN c_art_posizione AS c_art_posizione1
                    ON c_art_articolo.id_art_posizione_home = c_art_posizione1.id_art_posizione 
                                    
                    INNER JOIN c_art_posizione AS c_art_posizione2
                    ON c_art_articolo.id_art_posizione_sottohome = c_art_posizione2.id_art_posizione 
                    AND (c_art_articolo.id_art_posizione_sottohome = 34)
                    
                    WHERE c_art_articolo.metatag LIKE 
    $tagdefinitivi

                    ORDER BY c_art_articolo.id_art_articolo DESC LIMIT 20"
    ;
                
    $mysql_query_15=mysql_query($query_15$conn);
                
                
    ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    mmmhhh non mi funziona esce sempre lo stesso articolo (quello principale) ripetuto tante volte

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.