Search...


  1. #1
    Banned Mihai_z reprezinta o cantitate neglijabila
    Data de inscriere
    11-02-2006
    Sex
    F
    Mesaje
    621
    Mesaje bazar
    36
    Putere Reputatie
    0
    Reputatie
    10
    Puncte CF
    0.0

    Post Search...

    Bun, am primit o cere cam ciudata pentru un search ...am vreo 5 tabele in mysql (cu campuri pt multilanguage content), problema vine la search:

    persoana care vrea searchul vrea sa ii apara gen:
    Am gasit urmatoarele rezultate:
    index(4 rezultate)
    contact(2 rezultate)
    e.t.c.
    Astea ar avea un link catre pagina respectiva care face cuvintele gasite pe pagina cu un fundal galben(gen google).
    eu am facut un array cu tabele si am facut ceva gen: (am uitat sa precizez ca $langauge e cookieul)
    PHP Cod:
    $tabele=array('home','contact'...);
    foreach(
    $tabele as $x)
      {
         if(
    $x='home')
             {
                 
    $sql="SELECT * FROM  home WHERE ".$language."like '%$cauta%'";
                 
    $rezult mysql_query($sql);
                 if(
    mysql_num_rows($rezult)!=0)
                    {
                      
    $numar_rez mysql_num_rows($rezult);
                      echo 
    '<a href="index/$cauta" rel="cautare" class="cautare">index($numar_rez)</a>';
                    }
              }
         
    si tot asa pt paginile 
      

    intrebarea e cum fac la acea pagina sa imi faca un background galben la cuvintele care sunt gen $cauta....?


    p.s. nuj daca e scriptul bine
    p.s.2. nuj daca ma cam complic

    later edit...

    mai am lucrat la script cel de mai sus e doar un test
    ...nuj daca e bine
    PHP Cod:
    function cauta()
        {
            
    $cuvant$_POST['cuvant'];
            
    $tabele = array('articole','despre','legislatie','servicii','home','onorarii','cariera');
            if(
    $cauta="")
                {
                    echo 
    'Va rugam sa completati campul';
                }
            else
                {
                    if(!empty(
    $_COOKIE['language']))
                        {
                            
    $language='ro';
                        }
                            else
                        {
                            
    $language=$_COOKIE['language'];
                        }
                    foreach(
    $tabele as $x)
                        {
                            if(
    $x=='articole')
                                {
                                    
    $sql_articole="SELECT * FROM articole_".$language." WHERE continut like '%$cauta%'";
                                    
    $result_articole mysql_query($sql_articole);
                                    if(
    mysql_num_rows($result_articole)!=0)
                                        {
                                             
    $cate_rezultate_articole mysql_num_rows($result_articole);
                                            echo 
    '<a href="cauta_articol/'.$cuvant.'">articole('.$cate_rezultate_articole.')</a>';
                                        }
                                }
                                
                            if(
    $x='despre')
                                {
                                    
    $sql_despre="SELECT * FROM  despre_".$language." WHERE eeee LIKE '%$cauta%' OR hhhh LIKE '%$cauta%' OR asdasdsa  LIKE '%$cauta%'";
                                    
    $result_despre mysql_query($sql_despre);
                                    if(
    mysql_num_rows($result_despre)!=0)
                                        {
                                             
    $cate_rezultate_despre mysql_num_rows($result_despre);
                                            echo 
    '<a href="cauta_despre/'.$cuvant.'">articole('.$cate_rezultate_despre.')</a>';
                                        }
                                }
                                
                            if(
    $x='legislatie')
                                {
                                    
    $sql_legislatie="SELECT * FROM legislatie_".$language." WHERE continut like '%$cauta%'";
                                    
    $result_legislatie mysql_query($sql_legislatie);
                                    if(
    mysql_num_rows($result_legislatie)!=0)
                                        {
                                             
    $cate_rezultate_legislatie mysql_num_rows($result_legislatie);
                                            echo 
    '<a href="cauta_legislatie/'.$cuvant.'">articole('.$cate_rezultate_legislatie.')</a>';
                                        }
                                }
                                
                            if(
    $x='servicii')
                                {
                                    
    $sql_servicii="SELECT * FROM  servicii_".$language." WHERE drept_civil OR '%$cauta%' OR drept_comercial LIKE '%$cauta%' OR drept_societar LIKE '%$cauta%' OR dreptul_familiei LIKE '%$cauta%' OR dreptul_muncii OR '%$cauta%'";
                                    
    $result_servicii mysql_query($sql_servicii);
                                    if(
    mysql_num_rows($result_servicii)!=0)
                                        {
                                             
    $cate_rezultate_servicii mysql_num_rows($result_servicii);
                                            echo 
    '<a href="cauta_servicii/'.$cuvant.'">articole('.$cate_rezultate_servicii.')</a>';
                                        }
                                }
                                
                            if(
    $x=='home')
                                {
                                    
    $sql_home="SELECT * FROM ".$language." WHERE home like '%$cauta%'";
                                    
    $result_homemysql_query($sql_home);
                                    if(
    mysql_num_rows($result_home)!=0)
                                        {
                                             
    $cate_rezultate_home mysql_num_rows($result_home);
                                            echo 
    '<a href="cauta_home/'.$cuvant.'">articole('.$cate_rezultate_home.')</a>';
                                        }
                                }    
                                
                            if(
    $x=='onorarii')
                                {
                                    
    $sql_cariera="SELECT * FROM ".$language." WHERE onorarii like '%$cauta%'";
                                    
    $result_carieramysql_query($sql_cariera);
                                    if(
    mysql_num_rows($result_cariera)!=0)
                                        {
                                             
    $cate_rezultate_cariera mysql_num_rows($result_cariera);
                                            echo 
    '<a href="cauta_onorarii/'.$cuvant.'">articole('.$cate_rezultate_cariera.')</a>';
                                        }
                                }    
                                
                            if(
    $x=='cariera')
                                {
                                    
    $sql_cariera="SELECT * FROM ".$language." WHERE cariera like '%$cauta%'";
                                    
    $result_carieramysql_query($sql_cariera);
                                    if(
    mysql_num_rows($result_cariera)!=0)
                                        {
                                             
    $cate_rezultate_cariera mysql_num_rows($result_cariera);
                                            echo 
    '<a href="cauta_cariera/'.$cuvant.'">articole('.$cate_rezultate_cariera.')</a>';
                                        }
                                }    
                        }    

                }
        } 

    p.s.3. in legatura cu gresrile(rep) ..erau 3 sau 4
    Last edited by Mihai_z; 28-12-2007 at 19:51.

  2. #2
    Nerds Rule The World Johan's Avatar Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist.
    Data de inscriere
    06-11-2005
    Locaţie
    Where The Wild Metal Grows
    Varsta
    35
    Sex
    M
    Mesaje
    914
    Mesaje bazar
    38
    Putere Reputatie
    42
    Reputatie
    5022
    Puncte CF
    36.0
    Usergroups:
    Raspunsul e simplu:
    Dupa ce ai facut fetch la rezultatele cautarii daca exista, treci textul printr-o functie de highlight.

    PHP Cod:
    function highlight($string,$cuvantcautat) {
        if(!empty(
    $string)) return str_ireplace($cuvantcautat,'<span class="highlight">'.$cuvantcautat.'</span>',$string);

    }

    $rezultat_high highlight($result['campdorit']); 
    In felul asta, stringurile vor contine respectivul cuvant cautat scos in evidenta
    Dum spiro spero, dum spiro scio

    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

  3. #3
    Banned Mihai_z reprezinta o cantitate neglijabila
    Data de inscriere
    11-02-2006
    Sex
    F
    Mesaje
    621
    Mesaje bazar
    36
    Putere Reputatie
    0
    Reputatie
    10
    Puncte CF
    0.0
    acuma mai am o problema , merge functia, dar problema e ca imi ia si html din mysql(<span>,<br>,...)

  4. #4
    Nerds Rule The World Johan's Avatar Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist.
    Data de inscriere
    06-11-2005
    Locaţie
    Where The Wild Metal Grows
    Varsta
    35
    Sex
    M
    Mesaje
    914
    Mesaje bazar
    38
    Putere Reputatie
    42
    Reputatie
    5022
    Puncte CF
    36.0
    Usergroups:
    PHP Cod:
    function highlight($string,$cuvantcautat) { 
        if(!empty(
    $string)) return preg_replace('/('.$cuvantcautat.'[^\<][^\>][^[\<.span\>|\<.p\>|\<.strong\>|\<br\ \/\>|\<.div\>|\<.em\>]])/','<span class="highlight">'.$cuvantcautat.'</span>',$string);



    $rezultat_high highlight($result['campdorit']); 
    In orice caz, daca mai ai taguri de exclus, le adaugi in lista aia cu |\<.tag\> . Acum sa explic ce reprezinta. "|" inseamna "sau" , . inseamna orice caracter sau nici unu , \ da escape la caracterele speciale si le foloseste cu sensul propriu.
    Dum spiro spero, dum spiro scio


  5. #5
    Banned Mihai_z reprezinta o cantitate neglijabila
    Data de inscriere
    11-02-2006
    Sex
    F
    Mesaje
    621
    Mesaje bazar
    36
    Putere Reputatie
    0
    Reputatie
    10
    Puncte CF
    0.0
    am rezuolvat searchu cu un js

  6. #6
    Nerds Rule The World Johan's Avatar Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist. Johan este reprezentantul tuturor, idealul unui forumist.
    Data de inscriere
    06-11-2005
    Locaţie
    Where The Wild Metal Grows
    Varsta
    35
    Sex
    M
    Mesaje
    914
    Mesaje bazar
    38
    Putere Reputatie
    42
    Reputatie
    5022
    Puncte CF
    36.0
    Usergroups:
    De ce nu postezi solutia prin care ai rezolvat? Ca poate mai au si altii nevoie...
    Dum spiro spero, dum spiro scio


  7. #7
    Banned Mihai_z reprezinta o cantitate neglijabila
    Data de inscriere
    11-02-2006
    Sex
    F
    Mesaje
    621
    Mesaje bazar
    36
    Putere Reputatie
    0
    Reputatie
    10
    Puncte CF
    0.0
    pai http://svn.fucoder.com/fucoder/se-hi..._hilite_src.js
    am folost linkul de sus mi-a mers perfect

    in cod am folosit ceva gen

    Cod HTML:
    <script type="text/javascript" src="/test/se_hilite_src.js"></script>
    <script type="text/javascript">
        Hilite.debug_referrer = 'http://www.technorati.com/search/<?php echo $_GET['cauta']; ?>?start=10';
    </script>
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

Google+

Cautati logo-ul CraiovaForum?

Iata cateva variante: