Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

Korenaar Differenziare select motore... 16-07-2014, 12:04
badaze Con il codice che hai postato... 16-07-2014, 18:42
Korenaar Stanotte alle 2 in un momento... 17-07-2014, 12:45
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Differenziare select motore di ricerca "Inizia per", "contiene" e "finisce per"

    Salve a tutti,
    sto puntualizzando un piccolo motore di ricerca seguendo tra gli altri anche i criteri di ricerca classici che ho elencato in oggetto.

    un pò di codice:



    Questo è il codice che regola la select dei criteri tramite array e foreach
    Codice PHP:
    private $compare = array(
            
    "uguale a" => "=",
            
    "diverso da" => "NOT LIKE",
            
    "minore di" => "<",
            
    "maggiore di" => ">",
           
    "minore di o uguale a" => "<=",
            
    "maggiore di o uguale a" => ">=",
            
    "contiene" => 'LIKE',
            
    "inizia con" => "LIKE"
            
    );

    echo 
    "<select name=voce$var size=1>";

                
    //le varie option
                
    foreach ($compare as $num => $val) {
                    echo 
    "<option value=$val>$num</option>";
                }
                echo 
    "</select>"
    Questo è il controllo che eseguo nella classe, $this->voce è il campo da cercare, $this->comparazione1 è il criterio, $this->input è la stringa da cercare:
    Codice PHP:
    if (isset($_POST['input1'])) {
                if (
    $_POST['comparazione1'] == 'LIKE') {
                    
    $query .= " AND " $this->voce1 " " $this->comparazione1 " '$this->input1%'";                          } else{
                    
    $query .= " AND " $this->voce1 " " $this->comparazione1 " '$this->input1'";
                }  
          } 
    Il punto è che come si può notare dall'array, per "inizia per", "contiene" e "finisce per", la parola chiave nell'array da passare per comporre la query è sempre "LIKE", mentre la regexp da settare in realtà è diversa per ciascuno dei tre criteri è ben diversa.

    Vorrei capire: secondo voi come posso discernere l'input giusto avendo lo stesso value di riferimento nella SELECT?

    Grazie mille!

    P.S per chiarire, non ho ancora utilizzato il termine REGEXP nella query, ma è proprio la trasformazione che mi accingo a fare.
    Ultima modifica di Korenaar; 16-07-2014 a 12:07

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.