Visualizzazione dei risultati da 1 a 9 su 9

Discussione: search approfondito

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589

    search approfondito

    ciao
    Codice PHP:
     $media Media::where('active''='1)->where('title''LIKE''%'.$search.'%')->orderBy('created_at''desc')->paginate(Config::get('site.num_results_per_page')); 
    questa riga di codice mi ricerca le parole solo nel campo title... io vorrei che la ricerca venga estesa anche ai campi tipo "description " o un altro insomma ... non so come fare grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Aggiungi clausole where

    ->where('title', 'LIKE', '%'.$search.'%')->where('description', 'LIKE', '%'.$description.'%')->.....->orderBy(....)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Aggiungi clausole where

    ->where('title', 'LIKE', '%'.$search.'%')->where('description', 'LIKE', '%'.$description.'%')->.....->orderBy(....)
    quindi mette i risultati tutti insieme ? cioe' cerca la parola contenuta in search nei campi title e description senza andare in confusione ? ora provo

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Suppongo che traduca tutte le chiamate where() in
    WHERE .... AND WHERE .... AND WHERE ....

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Quote Originariamente inviata da Alhazred
    Suppongo

    davidspy, puoi postare il codice della classe Media o meglio dirci da che libreria l'hai presa? Così si può essere più precisi
    No

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Suppongo che traduca tutte le chiamate where() in
    WHERE .... AND WHERE .... AND WHERE ....
    Se hai più WHERE non funzionerà.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Se hai più WHERE non funzionerà.
    si volentieri, in pratica il contenuto di "search" è quello che immetto nel campo ricerca sul sito e vorrei che cercasse anche negli altri campi della tabella "media" del database .

    Codice PHP:
     public function home(){
                    try{

                            
    $settings Setting::first();
                            if(
    $settings){
                                    
                                    
    $search Input::get('search');
                                    if(isset(
    $search)){

                                    
                                            
    $media Media::where('active''='1)->where('title''LIKE''%'.$search.'%')->orderBy('created_at''desc')->paginate(Config::get('site.num_results_per_page'));
                                    } else {
                                            
    $media Media::with('media_likes''comments')->where('active''='1)->orderBy('created_at''desc')->paginate(Config::get('site.num_results_per_page'));
                                    }

                                    
    $categories Category::orderBy('order''ASC')->get();
                                    
    $pages Page::all();

                                    
    $data = array(
                                            
    'media' => $media,
                                            
    'search' => $search,
                                            
    'categories' => $categories,
                                            
    'pages' => $pages,
                                            
    'settings' => Setting::first(),
                                            );

                                    return 
    View::make('Theme::home'$data);

                            } else {
                                    throw new 
    Exception('settings not set, first install the script');
                            }

                    }catch(
    Exception $e){

                            return 
    Redirect::to('install.php');

                    }
            }



  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Serve la classe Media.
    Ma facciamo prima se ci dici che framework usi.
    No

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    Quote Originariamente inviata da tampertools Visualizza il messaggio
    Serve la classe Media.
    Ma facciamo prima se ci dici che framework usi.
    ho risolto aggiungendo a priori un campo radio button e nel codice sopra ho aggiunto un istruzione case :
    Codice PHP:
      $opzione =  Input::get('scelta');
                                    
    $search Input::get('search');
                                    if(isset(
    $search)){


                                     
    $i=  Input::get('scelta');
                                    switch (
    $i) {
                                                  case 
    "comment":
                                                     
    vedo cosa fare ..........
                                                     
                                                      break;
                                                      
                                                      case 
    "description":
                                                               
    $media Media::where('active''='1)->where('description''LIKE''%'.$search.'%')->orderBy('created_at''desc')->paginate(Config::get('site.num_results_per_page'));

                                                      
                                                         break;
                                                         
                                                       case 
    "title":
                                                       
                                                        
    $media Media::where('active''='1)->where('title''LIKE''%'.$search.'%')->orderBy('created_at''desc')->paginate(Config::get('site.num_results_per_page'));

                                                 
                                                        break;
                                                             }
       } else {..........
    seguito 

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.