Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    salvare una query di ricerca per filtrare i risultati

    Ciao a tutti
    vorrei poter salvare una query di ricerca che faccio per poi dare la possibilità di filtrare i risultati ulteriormente.

    In pratica estraggo le offerte di alcuni alberghi, ma poi voglio dare la possibilità di filtrare per trattamento (all inclusive, mezza pensione ecc)
    Sto provando cosi' ma non va:
    Codice PHP:
    $array_offerte = array();
    $query_offerte="SELECT id_offerta, prezzo, trattamento, id_albergo, incluso, supplementi_riduzioni, FROM offerte WHERE cancellata=\"0\" ";
    $array_offerte[] = $query_offerte;

    if (
    $trattamentofiltra=="1"){
    $query_offerte .= " and trattamento=\"1\"";

    in pratica una volta effettuata la prima ricerca mi faro' trovare un box sulla sidebar sinistra dove ci saranno i vari filtri, in questo caso ho aggiunto il campo trattamentofiltra che è una checkbox

    Il problema è che quando clicco sul pulsante per filtrare i risultati non riesco a memorizzare la query iniziale e quindi non escono risultati.
    Dove sbaglio?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusa, ma non ho proprio capito la cosa. La query mi pare hard coded nello script, come ti si perde ?
    Cmq, o la salvi in sessione oppure potresti metterla in un campo hidden del form filtri

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Non ho capito, che intendi per hard coded nello script?

    Avresti un esempio di come poterla mettere in una sessione o in un campo nascosto?

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Se mi scrivi
    Codice PHP:
    $query_offerte="SELECT id_offerta, prezzo, trattamento, id_albergo, incluso, supplementi_riduzioni, FROM offerte WHERE cancellata=\"0\" "
    La query è "scritta" nello script...come si perde?

    Non ho capito cosa vuoi portarti dietro, quindi è difficile farti un esempio calzante

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si, questa query esce nella pagina cerca.php e mostra quello che deve mostrare.
    Adesso devo "salvarla" in qualche modo cosi' quando applico il filtro, per esempio quello del trattamento, la query ce l'ho già ed aggiungo in automatico
    Codice PHP:
    where trattamento="$trattamentofiltrato
    e cosi' via per gli altri filtri

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ma vuoi salvarti il filtro, una volta impostato?

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si anche il filtro voglio salvare, qualsiasi cosa che l'utente cerca deve essere salvata per poi essere filtrata
    Nel senso che se filtra per Hard All Inclusive, deve restare il filtro applicato per la prossima ricerca.

    In pratica come in questa immagine

    https://snag.gy/vSe4Gj.jpg

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Visto che hai un form per i filtri, basta che li selezioni se sono presenti nel $_POST:
    Codice PHP:
    $base_query "SELECT .... FROM ... WHERE ....";
    if(isset(
    $_POST['filtro1'] && $_POST['filtro1']){
       
    $base_query .= " AND campo1=1"// o quel che è
    }

    if(isset(
    $_POST['filtro2']  && $_POST['filtro2']){
       
    $base_query .= " AND campo2=1";
    }

    etc 
    Nel form dei filtri:
    Codice PHP:
    <form action="cerca.php" method="POST" >
      <input type="checkbox" name="filtro1" <?php if(isset($_POST['filtro1']) && $_POST['filtro1']) echo 'checked' ?> > 
      <input type="checkbox" name="filtro2" <?php if(isset($_POST['filtro2']) && $_POST['filtro2']) echo 'checked' ?> > 
       etc...
    Ultima modifica di boots; 16-03-2018 a 12:58

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si su questo ci sono, ma non capisco come fare a memorizzare la prima query per poi lanciarla di nuovo quando avvio i filtri

    Gli array che ho messo non mi servono a niente?

  10. #10
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusa, ma se arrivi su cerca.php dovresti eseguire la query senza filtri:
    Codice PHP:
    SELECT ... FROM ... WHERE... 
    Quando selezioni dal form i checkbox, ricarichi cerca.php e accodi alla query di sopra i filtri
    Codice PHP:
    SELECT ... FROM ... WHERE ... AND campo1=
    Inoltre hai già checked il relativo checkbox così se aggiungo un filtro la query diventa
    Codice PHP:
    SELECT ... FROM ... WHERE ... AND campo1=AND campo2=
    Cos'altro mi sfugge? la query di partenza non è fissa ? o cosa ?

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.