Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [Mysql] Stampare solo una parte del campo

    Ciao ragazzi, stò lavorando ad una funzione che ti fa cercare all'interno delle pagina di un sito, questo pagine saranno inserite in un database e per stampare i risultati a seconda della paroal ricercata uso questa query

    Codice PHP:
    $query=mysql_query("SELECT * FROM pagine WHERE nome_pagina LIKE '%$cerca%' OR tag_pagina LIKE '%$cerca%' OR contenuto_pagina LIKE '%$cerca%' ORDER BY timestamp DESC"); 
    Secondo voi può andare bene?

    Un altra domanda, ho un campo contenuto_pagina che è abbastanza lungo, dovrei stamparlo a video in una tabella (insieme ai risultati e agli altri campi) ma vorrei che se troppo lungo fosse stampato solo magari un determinato numero di caratteri o una parte di campo, non sò come fare mi potete aiutare?
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  2. #2
    La query restituisce come risultato laddove i campi che hai scelto contengono la parola di ricerca, pare sia corretta.
    Per stampare solo una parte di testo usa substr (http://it.php.net/manual/en/function.substr.php)

  3. #3
    Perfetto sei un grande, tu come faresti un query di ricerca? così?

    Secondo te può funzionare questo:
    Codice PHP:
    if (strlen($contenuto_pagina) > 30){
                
    $contenuto_pagina substr($contenuto_pagina030);
                
    $contenuto_pagina .= "...";
            } 
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  4. #4
    Nel tuo stesso modo.

  5. #5
    La tua query per quanto sintatticamente esatta non è "efficace" per i tuoi scopi:
    essa prevede alcune condizioni
    codice:
    WHERE nome_pagina LIKE '%$cerca%' OR tag_pagina LIKE '%$cerca%' OR contenuto_pagina LIKE '%$cerca%'
    le quali sono messe sullo stesso piano... mi spiego meglio.
    Poniamo che tu cerchi la parola "ciao" una pagina la contiene 2 volte, un altra la contiene 10 volte, etc etc... se ne desume che la seconda di queste pagine è più attinenete alla ricerca effettuata.
    Con la tua query, essendo per entrambi i record soddisfatte le condizioni, non farà alcunissima differenza fra i due record.
    In pratica con la tua query i record sono estratti senza creare una gerarchia dei risultati.

    Il genere di query di cui ti devi servire sono MATCH -AGAINST che trovi spiegato splendidamente qui:
    http://www.mtxweb.ch/php_learn/?p=820

    Spero di essere stato chiaro
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #6
    Capito ho capito, ma non riesco a trovare nessuna spiegazione per quel metodo, il link che mi hai inviato non spiega la sintassi e bene cosa fa..
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  7. #7
    Ho trovato questo articolo che le spiega motlo bene..ti faccio sapere ok?

    http://www.mtxweb.ch/php_learn/?p=244
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  8. #8
    hai ragione ho sbagliato link... (se leggevi all'interno lo trovavi quello esatto...)

    http://www.mtxweb.ch/php_learn/?p=244
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  9. #9
    Cmc ok, ho capito qualcosa, ma mi puoi aiutare a comporre la query?? ho messo nel database i fulltext ai campi che mi servono per la ricerca. Grazie.
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  10. #10
    codice:
    SELECT *, MATCH(nome_pagina,tag_pagina,contenuto_pagina) AGAINST('$cerca') AS tot 
    FROM pagine 
    WHERE MATCH(nome_pagina,tag_pagina,contenuto_pagina)
    AGAINST ('$cerca' IN BOOLEAN MODE) ORDER BY tot DESC
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

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.