Pagina 1 di 4 123 ... UltimoUltimo
Visualizzazione risultati 1 fino 30 di 105

Discussione: [php] parole cercate di colore diverso

  1. #1
    Guest

    Predefinito [php] parole cercate di colore diverso

    Ciao
    vi spiego cosa devo fare...
    ho un input dove metto una parola via get

    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <input type="text" name="parola">
    <input type="submit" name="invia" value="INVIA">
    </form>
    <?php
    $parola
    =urlencode($GET['parola']);


    $query = mysql_query("SELECT * FROM tabella WHERE testo='" .$parola. "'");
    while(
    $cerca = mysql_fetch_array($query)){

    echo
    $cerca[testo];
    }
    ?>
    tipp l'utente
    scrive ciao amici si collega al database e tutte le parole che hanno
    ciao amici li colora
    ma di colore diverso
    la pagina tramite indirizzo deve essere cosi
    cerca.php?parola=ciao+amici

    pensavo per colorare le parole di usare una cosa del genere
    Codice PHP:
    function generacolore(){
    $tutto= Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
    $a=rand(1,15);
    $b=rand(1,15);
    $c=rand(1,15);
    $d=rand(1,15);
    $e=rand(1,15);
    $f=rand(1,15);
    return
    "#".$tutto[$a].$tutto[$b].$tutto[$c].$tutto[$d].$tutto[$e].$tutto[$f];
    }
    il testo lo prende dal db e deve cercare su tutti i dati con le parole inserite...^^

  2. #2
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Forse può andare qualcosa del genere:

    Codice PHP:
    $colore = generacolore();

    $cerca["testo"] = str_replace($parola, "<span style=\"color: {$color}\">{$parola}</span>", $cerca["testo"]);
    Comunque secondo me è meglio salvare in un array dei colori a tua scelta che generarli via quella funzione :D!

  3. #3
    Guest

    Predefinito

    xDxD

    tu dici una cosa del genere....
    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <input type="text" name="parola">
    <input type="submit" name="invia" value="INVIA">
    </form>
    <?php
    $parola
    =urlencode($GET['parola']);


    $query = mysql_query("SELECT * FROM tabella WHERE testo='" .$parola. "'");
    while(
    $cerca = mysql_fetch_array($query)){

    function
    generacolore(){
    $tutto= Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
    $a=rand(1,15);
    $b=rand(1,15);
    $c=rand(1,15);
    $d=rand(1,15);
    $e=rand(1,15);
    $f=rand(1,15);
    return
    "#".$tutto[$a].$tutto[$b].$tutto[$c].$tutto[$d].$tutto[$e].$tutto[$f];
    }

    $colore = generacolore();
    $cerca["testo"] = str_replace($parola, "<span style=\"color: {$color}\">{$parola}</span>", $cerca["testo"]);


    echo
    $cerca[testo];
    }
    ?>

  4. #4
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Si!
    Ma trovo inutile definire la funzione "generacolore" per ogni risultato estratto !!!
    Porta la definizione della funzione fuori dal loop while ed è come dico io !!!

  5. #5
    Guest

    Predefinito

    lo sto provando in locale ma non funziona....
    non stampa niente...
    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <input type="text" name="parola">
    <input type="submit" value="INVIA">
    </form>
    <?php
    $parola
    =urlencode($GET['parola']);

    function
    generacolore(){
    $tutto= Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
    $a=rand(1,15);
    $b=rand(1,15);
    $c=rand(1,15);
    $d=rand(1,15);
    $e=rand(1,15);
    $f=rand(1,15);
    return
    "#".$tutto[$a].$tutto[$b].$tutto[$c].$tutto[$d].$tutto[$e].$tutto[$f];
    }

    $query = mysql_query("SELECT * FROM tabella WHERE testo='" .$parola. "'");
    while(
    $cerca = mysql_fetch_array($query)){

    $colore = generacolore();
    $cerca["testo"] = str_replace($parola, "<span style=\"color: {$color}\">{$parola}</span>", $cerca["testo"]);
    echo
    $cerca[testo];
    }
    ?>

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    L'hai effettuata la connessione al database?
    Metti error_reporting(E_ALL); a inizio pagina e scrivi gli errori che ti segnala!

  7. #7
    Guest

    Predefinito

    ho fatto cosi....
    ma non stampa niente
    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <input type="text" name="parola">
    <input type="submit" value="INVIA">
    </form>
    <?php
    //Connessione al database
    if(!($connessione_mysql = mysql_connect('localhost', 'zappi', ''))){
    die(
    'Errore nella connessione al database, controlla i parametri.<br>' . mysql_error());
    }

    //Connessione alla tabella
    if($connessione_mysql){
    if(!(
    mysql_select_db('my_zappi', $connessione_mysql))){
    die(
    'Errore nella selezione del database.<br>' . mysql_error());
    }}

    $parola=urlencode($GET['parola']);

    function
    generacolore(){
    $tutto= Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
    $a=rand(1,15);
    $b=rand(1,15);
    $c=rand(1,15);
    $d=rand(1,15);
    $e=rand(1,15);
    $f=rand(1,15);
    return
    "#".$tutto[$a].$tutto[$b].$tutto[$c].$tutto[$d].$tutto[$e].$tutto[$f];
    }

    $query = mysql_query("SELECT * FROM tabella WHERE testo='" .$parola. "'");
    while(
    $cerca = mysql_fetch_array($query)){

    $colore = generacolore();
    $cerca["testo"] = str_replace($parola, "<span style=\"color: {$color}\">{$parola}</span>", $cerca["testo"]);
    echo
    $cerca[testo];
    }
    ?>

  8. #8
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Bruuutta quella funzione! :D

    Essendo i colori rappresentati sottoforma di numeri esadecimali compresi tra 0 e FFFFFF (= 16777215 decimale), è sufficiente una sola chiamata a rand(): trovato un valore compreso in questo intervallo, si ri-trasforma in esadecimale con dechex().

    Codice PHP:
    function generaColore()
    {
    return
    '#' . dechex ( rand( 0, 16777215 ) );
    }
    Per quanto riguarda il tuo problema, considerando che non vedo errori particolarmente rilevanti nel codice mi chiedo se tu voglia estrarre le righe dove testo corrisponda a $parola o la contenga; nel secondo caso devi usare l'operatore LIKE e non l'uguale.

    A parte ciò, c'è un errore nel nome della variabile che contiene il colore: la dichiari come $colore, ma vai a stampare $color.

    Ciao!
    Ultima modifica di programmazioned : 10-10-2009 alle ore 23.12.36

  9. #9
    Guest

    Predefinito

    ma se lo dici tu ci credo^^

    sto facendo cosi ma non funziona
    ci poi dare un occhiata e dirmi come secondo te e meglio...
    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <input type="text" name="parola">
    <input type="submit" value="INVIA">
    </form>
    <?php
    if(isset($_GET["parola"])){

    //Connessione al database
    if(!($connessione_mysql = mysql_connect('localhost', 'zappi', ''))){
    die(
    'Errore nella connessione al database, controlla i parametri.<br>' . mysql_error());
    }

    //Connessione alla tabella
    if($connessione_mysql){
    if(!(
    mysql_select_db('my_zappi', $connessione_mysql))){
    die(
    'Errore nella selezione del database.<br>' . mysql_error());
    }}

    $parola=urlencode($GET['parola']);
    function
    generacolore(){
    return
    '#'.dechex(rand(0, 16777215));
    }


    $query = mysql_query("SELECT * FROM tabella");
    while(
    $cerca = mysql_fetch_array($query)){

    $colore = generacolore();
    $cerca["testo"] = str_replace($parola, "<span style=\"color: {$colore}\">{$parola}</span>", $cerca["testo"]);
    echo
    $cerca["testo"];
    }}
    ?>

  10. #10
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Citazione Originalmente inviato da programmazioned
    Per quanto riguarda il tuo problema, considerando che non vedo errori particolarmente rilevanti nel codice mi chiedo se tu voglia estrarre le righe dove testo corrisponda a $parola o la contenga; nel secondo caso devi usare l'operatore LIKE e non l'uguale.
    Nel campo testo di "tabella" cosa c'è?

    Se contiene dei testi all'interno dei quali trovare $parola, prova con:

    Codice PHP:
    mysql_query("SELECT * FROM tabella WHERE testo LIKE '%".$parola."%'")
    Ciao!

  11. #11
    Guest

    Predefinito

    mi da errore
    Parse error: syntax error, unexpected T_WHILE

    ti spiego metti la parola
    tipo
    ciao amici
    cerca tra tutti i dati che ce nella tabella testo
    cerca le parole ciao e amici

    se le trova le stampa
    con tutto il testo fino a 250 caratteri
    e cambia di colore lo sfondo delle parole ciao e amici

    ciao e amici non devo essere nella stessa riga ^^

    spero di essere stato chiaro...

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Codice:
    $parola=urlencode($GET['parola']);
    devi cambiarlo con
    Codice:
    $_GET['parola']
    e poi perchè utilizzi urlencode?

  13. #13
    Guest

    Predefinito

    per far si che scrivendo
    ciao tasto (spazio) amici
    stampi
    ciao+amici
    capito...

  14. #14
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    In quale riga ti da l'errore?
    mi da errore
    Parse error: syntax error, unexpected T_WHILE
    Ultima modifica di andreafallico : 23-02-2012 alle ore 00.34.59

  15. #15
    Guest

    Predefinito

    si ma dovrei fare che per ogni singola parola la colora di colore diverso
    tipo tutte le parola casa di blu
    ciao di verde e cosi via

    errore lo da qua
    mysql_query("SELECT * FROM tabella WHERE testo LIKE '%".$parola."%'")

  16. #16
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Prima di tutto vai nel pannello di phpMyAdmin e controlla che la tabella "tabella" del db sia tipo MyISAM, poi devi eseguire questo comando sql:
    Codice:
    ALTER TABLE tabella ADD FULLTEXT(testo);
    e questo è lo script che funziona(l'ho provato):
    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
    <input type="text" name="parola">
    <input type="submit" value="INVIA">
    </form>

    <?php
    $parola
    = mysql_real_escape_string($_GET["parola"]);
    if(isset(
    $parola)){
    $mysql = @mysql_connect('localhost', 'zappi', '');
    if(
    $mysql == FALSE)
    exit();
    @
    mysql_select_db('my_zappi', $mysql);
    $query = mysql_query("SELECT *, MATCH(testo) AGAINST('+$parola' IN BOOLEAN MODE) as score FROM tabella WHERE MATCH(testo) AGAINST('+$parola' IN BOOLEAN MODE) ORDER BY score DESC");
    $array = array();
    $tok = strtok($parola, " ");
    while(
    $tok !== false){
    array_push($array, $tok);
    $tok = strtok(" ");
    }
    while(
    $cerca = mysql_fetch_array($query)){
    foreach(
    $array as $word){
    $colore = generacolore();
    $cerca["testo"] = str_ireplace($word, "<span style=\"color: {$colore}\">{$word}</span>", $cerca["testo"]);
    }
    echo
    $cerca["testo"];
    }
    }
    function
    generacolore(){
    return
    '#'.dechex(rand(0, 16777215));
    }
    ?>
    e poi mi dici se funziona.

  17. #17
    Guest

    Predefinito

    ma ha cosa serve
    ALTER TABLE tabella ADD FULLTEXT(testo);

  18. #18
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    ma ha cosa serve
    ALTER TABLE tabella ADD FULLTEXT(testo);
    Il comando serve per eseguire ricerche FULL TEXT nella tabella.
    Full Text consente di eseguire ricerche ad alta precisione all'interno di un database.
    Ma l'hai provato?
    Ultima modifica di andreafallico : 11-10-2009 alle ore 18.15.42

  19. #19
    Guest

    Predefinito

    lo script lo provato ma ci sono modifiche da fare...

    prima di tutto bravo^^

    si ma senza full text

    1)fa la distinzione tra minuscole e maiuscole e vorrei che non le facesse...
    2)usare like per far cercare meglio le parole
    3)cerca le parole anche al interno del codice perchè
    tipo
    style="background: #e5d...
    lo colora

  20. #20
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    lo script lo provato ma ci sono modifiche da fare...

    prima di tutto bravo^^

    si ma senza full text

    1)fa la distinzione tra minuscole e maiuscole e vorrei che non le facesse...
    2)usare like per far cercare meglio le parole
    3)cerca le parole anche al interno del codice perchè
    tipo
    style="background: #e5d...
    lo colora
    1) non fa le distinzioni perchè se hai visto ho usato str_ireplace
    2) meglio full text di like perchè con like se metti una parola (tipo ciao) funziona invece se le parole sono più di una (tipo ciao casa) non funziona; come ti ho detto sopra full text fa ricerche ad alta precisione.
    3)non l'ho capito cosa vuoi fare.

  21. #21
    Guest

    Predefinito

    1)veramente non e
    str_replace
    e se io volessi che non facesse distinzione...
    2)mi poi fare un esempio di come devo metterlo
    CREATE TABLE `tabella` (
    `id` INT(4) NOT NULL AUTO_INCREMENT,
    `titolo` VARCHAR(65) NOT NULL DEFAULT '',
    `testo` VARCHAR(65) NOT NULL DEFAULT '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1 ;
    e possibile impostare già dal codice della tabella che i risultati si vedono dal ultimo inserito perché non so come si fa
    3)ho detto che ho messo
    ciao+a+tutti
    la lettera (a) la trova anche nella parte del codice e non so il perché

  22. #22
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    1)veramente non e
    e se io volessi che non facesse distinzione...
    2)mi poi fare un esempio di come devo metterlo

    e possibile impostare già dal codice della tabella che i risultati si vedono dal ultimo inserito perché non so come si fa
    3)ho detto che ho messo
    ciao+a+tutti
    la lettera (a) la trova anche nella parte del codice e non so il perché
    1)
    str_replace -> tiene conto se minuscole o maiuscole (Case sensitive)
    str_ireplace -> non tiene conto se minuscole o maiuscole (Case insensitive)
    io nel codice avevo messo str_ireplace.
    2)nella tabella non si può mettere in modo che si vedono dall' ultimo inserito.
    3)fai un esempio.

  23. #23
    Guest

    Predefinito

    io lo tolto
    str_ireplace
    perche da errore
    Fatal error: Call to undefined function: str_ireplace()
    e avevo messo
    str_replace capito


    saaadsssaaaaaaaaaaaaaa an style="background: #bd8fdd">ciaoan> a tutti

  24. #24
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    io lo tolto
    str_ireplace
    perche da errore
    Fatal error: Call to undefined function: str_ireplace()
    e avevo messo
    str_replace capito


    saaadsssaaaaaaaaaaaaaa an style="background: #bd8fdd">ciaoan> a tutti
    Mi sembra strano che ti da errore per str_ireplace() perchè io l'ho provato e funziona.
    saaadsssaaaaaaaaaaaaaa an style="background: #bd8fdd">ciaoan> a tutti
    cosa ti colora?

  25. #25
    Guest

    Predefinito

    invece da errore

    tipo scrivo
    saaadsssaaaaaaaaaaaaaa+a

    quella (a) far si di etrare nel codice della pagina e provoca problemi

    tipo qua
    an style="background: #49b066">saaadsssaaaaaaaaaaaaaaan>
    sottolinea solo a
    ma non dovrebbe comparire an style...

  26. #26
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Puoi linkare la pagina quando provo io?

  27. #27
    Guest

    Predefinito

    certo....
    http://zappi.altervista.org/cerca.ph...aaaaaaaaaaaa+a

    p.s.
    devo escludere dal testo alcune cose che iniziano con
    Codice:
    ssa
    come posso fare...

  28. #28
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ma nel campo testo della tabella del db inserisci anche codice?
    Tipo
    Codice:
    <span style="background: #bf50ba">

  29. #29
    Guest

    Predefinito

    cosa no
    questo e il codice php che sto usando

    Codice PHP:
    <?php
    $parola
    = mysql_real_escape_string($_GET["parola"]);

    if(isset(
    $parola)){
    $mysql = @mysql_connect('localhost', 'zappi', '');

    if(
    $mysql == FALSE)
    exit();
    @
    mysql_select_db('my_zappi', $mysql);
    $query = mysql_query("SELECT *, MATCH(testo) AGAINST('+$parola' IN BOOLEAN MODE) as score FROM tabella WHERE MATCH(testo) AGAINST('+$parola' IN BOOLEAN MODE) ORDER BY score DESC");
    $array = array();
    $tok = strtok($parola, " ");

    while(
    $tok !== false){
    array_push($array, $tok);
    $tok = strtok(" ");
    }


    echo
    "<div class=\"titolo_cerca\">Risultati ricerca: " .$parola. "</div><br><br>\n\n\n";
    echo
    "<table width=\"200\" border=\"0\" align=\"center\">";

    while(
    $cerca = mysql_fetch_array($query)){
    foreach(
    $array as $word){
    $colore = generacolore();
    $cerca[testo] = str_replace($word, "<span style=\"background: {$colore}\">{$word}</span>", $cerca[testo]);
    }
    echo
    "\n<tr><td class=\"titolo_post\">\n" .$cerca["titolo"]. "\n</td></tr>
    <tr><td class=\"testo\">\n"
    .$cerca[testo]. "<br>\n</td></tr>\n\n";
    }}


    echo
    "
    </table>"
    ;

    function
    generacolore(){
    return
    '#'.dechex(rand(0, 16777215));
    }
    ?>

  30. #30
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ora lo proverò poi ti farò sapere.
    Poi devi sostituire $cerca[testo] con $cerca["testo"]
    Ultima modifica di andreafallico : 11-10-2009 alle ore 19.58.36

Pagina 1 di 4 123 ... UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •