Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177

    ricerca dinamica partendo dalla scelta del database

    buongiorno ragazzi
    una domanda che mi sta perseguitando da giorni
    vorrei sapere come fare una ricerca dinamica avendo tre campi
    (categoria , regione , prezzo) la ricerca dinamica la so fare nn ci sono problemi
    l'unico problema che mi assilla e il fatto che il campo categoria e una select con 3 scelte
    barca, postobarca, imbarco
    e ognuna di esse e una tabella a parte con i propri campi
    come posso selezionarli da una semplice select???

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    18
    Non so se ho capito bene la tua domanda.
    Per ricerca dinamica intendi una "maschera" di ricerca con 3 campi?
    In ogni caso (sempre se ho capito bene la tua domanda) mi sembra abbastanza semplice:
    in base al value della select che ti ritrovi nella POST, vai a fare la query su una tabella diversa.
    si può fare con uno switch, con degli if...
    Ciao !
    "The question of whether Machines
    Can Think... is about as relevant as
    the question of whether Submarines
    Can Swim." Dijkstra

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    si guarda io per esempio la ricerca la faccio prima con un form logicamente
    e poi uso la parte in php che va a fare la ricerca in una sola tabella come questo piccolo esempio che ti mostro

    Codice PHP:
    $conditions = array();
    foreach(
    $_POST['search'] as $key =>$value){
         if(!
    $value) continue;
         
    // nel caso di select, puoi mettere un option con value nullo
         
    switch($key){
             case 
    'velmot':
                  
    $conditions[] = "vel LIKE '%".mysql_real_escape_string($value)."%'";
            break;
             case 
    'group':
                  
    $conditions[] = "cat LIKE '%".mysql_real_escape_string($value)."%'";
            break;
             case 
    'tipo':
                  
    $conditions[] = "tip LIKE '%".mysql_real_escape_string($value)."%'";
            break;
             case 
    'przini':
                  
    $conditions[] = "prezzo >= '".mysql_real_escape_string($value)."'";
            break;
            case 
    'przfin':
                  
    $conditions[] = "prezzo <= '".mysql_real_escape_string($value)."'";
            break;
            case 
    'lungini':
                  
    $conditions[] = "lung >= '".mysql_real_escape_string($value)."'";
            break;
            case 
    'lungfin':
                  
    $conditions[] = "lung <= '".mysql_real_escape_string($value)."'";
            break;
            case 
    'largini':
                  
    $conditions[] = "larg >= '".mysql_real_escape_string($value)."'";
            break;
            case 
    'largfin':
                  
    $conditions[] = "larg <= '".mysql_real_escape_string($value)."'";
            break;
         }
    }
    $sql_conditions implode(' AND '$conditions);
    $query "SELECT *,DATE_FORMAT(data,'%d-%m-%Y') as data1  from postobarca WHERE $sql_conditions"

    ?> 

    ora come faccio a farlo per 3 diversi database in base a cio che sceglie l'utente dal select di ricercA??

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    nessuna indicazione?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    ragazzi veramente nessuno sa darmi una mano vi prego sto impazzendo

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    18
    Originariamente inviato da gian21
    ora come faccio a farlo per 3 diversi database in base a cio che sceglie l'utente dal select di ricercA??
    La mia risposta rimane la stessa di prima, provo a esportela in modo più chiaro.
    Tu vuoi se ho capito bene fare una query in una tabella diversa in base al valore della select.
    Sai come prelevare il valore da una select? (immagino di si)
    sai fare gli if? (immagino di si)
    La risposta è tutta qui.

    Se ho capito male fammelo sapere.
    "The question of whether Machines
    Can Think... is about as relevant as
    the question of whether Submarines
    Can Swim." Dijkstra

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    ciao
    io ho provato a fare cosi

    Codice PHP:
    $cat = $POST['cat'];
    if ( $cat == 1)
    {
    $conditions = array();
    foreach($_POST['search'] as $key =>$value){
         if(!$value) continue;
         // nel caso di select, puoi mettere un option con value nullo
         switch($key){
             case 'reg':
                  $conditions[] = "regione LIKE '%".mysql_real_escape_string($value)."%'";
            break;
             case 'przini':
                  $conditions[] = "prezzo >= '".mysql_real_escape_string($value)."'";
            break;
            case 'przfin':
                  $conditions[] = "prezzo <= '".mysql_real_escape_string($value)."'";
            break;
         }
    }
    $sql_conditions = implode(' AND ', $conditions);
    $query = "SELECT *,DATE_FORMAT(data,'%d-%m-%Y') as data1  from postobarca WHERE $sql_conditions"; 
    ?>
     <div style="position:absolute; left:30%; top:60%;">
     <?
     $risultato 
    mysql_query($query)
    or die(
    "Errore!! Nessun Campo selezionato per la ricerca  " /*. mysql_error()*/); 
    ?>
     </div>
     <?
    $num
    =mysql_num_rows($risultato);
    IF (
    $num == 0
     {  
    ?>
     <div style="position:absolute; left:30%; top:60%;">
     <?
     
    echo ("Nessun postobarca presente con questa selezione di ricerca.");
     
    ?>
     </div>
     <?
     
    include ("ricregionihtm.php");
         exit();
      }
    }
    ?>


    ovvero un if per cat che sarebbe il select con i tre database ovvero barca postobarca e imbarco mettendo come value numero 3-2-1
    e poi facendo la ricerca con gli switch come ho sempre fatto ma non funziona purtroppo

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.