Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Ricerche Avanzate
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • S
      stable Super User • ultima modifica di

      Ricerche Avanzate

      Ciao a tutti. Sto sistemando finalmente il mio sito dedicato agli hotel e mi sono bloccato alla cosiddetta "ricerca avanzata".
      Sinceramente non saprei dove mettere mani.
      Una cosa del tipo: http://www.alberghitalia.com/prenota.html

      Confidando nell'aiuto di qualcuno auguro ancora buone feste.
      :yuppi:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • P
        probid Super User • ultima modifica di

        Ciao,puoi basarti su questo articolo http://php.html.it/guide/lezione/2285/il-motore-di-ricerca/ 😉

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • S
          stable Super User • ultima modifica di

          Si quello già letto. Le query cosiddette "semplici" riesco a farle, del tipo con un solo campo( come si vede dal sito). Ma le altre?? Mi daresti un abbozzo di come fare?
          Thank U

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • S
            stable Super User • ultima modifica di

            Nessuno mi da una mano, uno spunto da dove iniziare???

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • massy
              massy Moderatore • ultima modifica di

              Non ho ben capito cosa ti serva, pertanto spero di imbroccare la risposta 🙂

              Suppongo tu abbia un db e che tale db ha dei campi con i quali restringere la richiesta.

              In tal caso devi impostare una query del tipo:

              Select * from 'nome_tabella' where condizione1='alfa', condizione2='beta', ...., condizionen='omega';

              Il punto è creare tale query, che suppongo farai attraverso php visto dove hai postato la richiesta.

              Ti occorre pertanto filtrare i campi vuoti da quelli pieni.
              In che modo?

              Potresti innanzitutto controllare che sia settata la variabile corrispondente,
              $_POST['numero_stelle'] per dirne una e controllare che abbia un valore coerente, da 1 a 5 ad esmepio.

              In tal caso il codice potrebbe essere una cosa del tipo:

              $addquery=(isset($_POST['numero_stelle']) && $_POST['numero_stelle']>=1 && $_POST['numero_stelle']<=5)?" AND numero_stelle=".$_POST['numero_stelle']:"";
              

              e via di seguito.

              $addquery è la variabile che ti serve e potresti concatenarla utilizzando vari controlli.

              alla fine otterrai una cosa del tipo:

              $q=mysql_query("Select * from 'nome_tabella' where".$addquery.";");

              Ovviamente occorre stare attento al casting delle variabili, controllare che i dati che ti arrivano dal post siano coerenti con quelli che ti aspetti, controllarne il tipo, usare mysql_escape_string un po' ovunque.

              Non è una cosetta da poco per dire. Spero di averti dato almeno qualche spunto per iniziare.

              :ciauz:

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • S
                stable Super User • ultima modifica di

                Diciamo che hai azzeccato il problema e mi hai dato un grosso aiuto almeno nel cominciare.
                Grazie.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                Caricamento altri post
                Rispondi
                • Topic risposta
                Effettua l'accesso per rispondere
                • Da Vecchi a Nuovi
                • Da Nuovi a Vecchi
                • Più Voti