Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [php]: ricerca multipla

    Ho una form con 6 campi, come creo la query combinata per estrarre i record se ad esempio non compilo uno dei campi del form?

  2. #2
    cioè??
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  3. #3
    la form contiene i campi:

    - data dal;
    - data al;
    - provincia;
    - comune;
    - num. protocollo;
    - ...

    mettiamo che un'utente faccia una ricerca scegliendo i campi campi data e provincia;
    un altro utente invece su provincia e comune;
    oppure mettiamo il caso che venga scelta la ricerca soltanto per num. protocollo, come faccio a passargli l'attributo AND nell'sql non sapendo quali sono i campi e quindi dove posizionare l'AND?

  4. #4
    Originariamente inviato da Bartjsp
    come faccio a passargli l'attributo AND nell'sql non sapendo quali sono i campi e quindi dove posizionare l'AND?
    Credo di non aver ancora ben capito cosa tu intenda...

    Però ci provo...

    La query può essere "costruita" durante l'esecuzione del codice, non deve per forza essere statica.
    Mi spiego:
    - dichiari una stringa che chiami $where
    - dentro questa stringa ci scrivi le varie condizioni:
    -- es. $where="data_dal='20080210'";
    -- es. $where.=" AND comune='Milano'";
    - componi la query: $query="SELECT * FROM XXX WHERE ".$where;

    Spero di aver capito giusto cosa richiedevi.
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  5. #5
    Ma se la data non c'è e la ricerca avviene solo per comune? lo script che hai scritto penso vada in errore. Ho cmq risolto in quest'altra maniera:

    Codice PHP:
    $query "SELECT * FROM tabella WHERE ";

    $condizioni = array();

    if(!empty(
    $_POST['campo1'])) 
       
    $condizioni[] = "campo1 = '" $_POST['campo1'] . "'";

    if(!empty(
    $_POST['campo2'])) 
       
    $condizioni[] = "campo2 = '" $_POST['campo2'] . "'";

    if(!empty(
    $_POST['campo3'])) 
       
    $condizioni[] = "campo3 = '" $_POST['campo3'] . "'";

    $query $query implode(" AND "$condizioni);

    $result mysql_query($query); 
    funziona ma l'unico problema è che se aggiungo questo pezzo:
    Codice PHP:
    if(!empty($_REQUEST['data_ingresso_dal']))
    $data_dal english_date($_REQUEST['data_ingresso_dal']);
    $condizioni[] = "data_ingresso >= '" $data_dal "'";

    if(!empty(
    $_REQUEST['data_ingresso_al']))
    $data_al english_date($_REQUEST['data_ingresso_al']);
    $condizioni[] = "data_ingresso <= '" $data_al "'"
    non solo non mi trova nulla, ma mi restituisce il seguente errore:

    Notice: Undefined variable: data_dal in c:\www\viavas\ricerca_decreti.php on line 11
    Notice: Undefined variable: data_al in c:\www\viavas\ricerca_decreti.php on line 15

  6. #6
    Il primo pezzo è esattamente quello che ti dicevo io scritto un pochino meglio in codice, i miei erano esempi!

    Circa il secondo pezzo il problema sta nella gestione delle date in PHP, ma lì non ne so molto, mi spiace, cerca sul forum che avevo letto di date un po' di tempo fa!
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

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.