• User

    Form di ricerca considera solo alcuni parametri

    ho un problema con un form di ricerca. Questo form è composto da 3 campi select e 2 campi text.

    La ricerca deve estrarmi tutti i dati della tabella se non ho selezionato nessuna delle condizioni del form, altrimenti deve estrarmi solo i dati che corrispondono alle condizioni del form.

    Il problema è che la ricerca mi tiene conto dei due campi text, ma non fa assolutamente caso ai tre campi select. Non riesco a capire il perchè.

    Questo è il codice del form:

    [PHP]
    <table cellpadding="3" width="500px">
    <form method="post" action="" name="search">
    <tr align="center">
    <td><strong>Località</strong></td>
    <td><strong>Luogo di interesse</strong></td>
    <td><strong>Luogo publico</strong></td>
    </tr>
    <tr align="center">
    <td>
    <select name="localita" id="localita">
    <option value="">-- seleziona --</option>
    <?php
    $qcli=mysql_query("SELECT nome FROM dove WHERE tipo='Localita' AND provincia='".$_SESSION['provincia']."' ORDER BY nome ASC");
    while($cli=mysql_fetch_assoc($qcli)){
    echo "<option value="".$cli['nome']."">".$cli['nome']."</option>"; }
    $localita=$cli['nome'];?>
    </select>
    </td>
    <td>
    <select name="Luogo_di_interesse" id="Luogo_di_interesse">
    <option value="">-- seleziona --</option>
    <?php
    $qcli2=mysql_query("SELECT nome FROM dove WHERE tipo='Luogo_di_interesse' AND provincia='".$_SESSION['provincia']."' ORDER BY nome ASC");
    while($cli2=mysql_fetch_assoc($qcli2)){
    echo "<option value="".$cli2['nome']."">".$cli2['nome']."</option>"; }?>
    </select>
    </td>
    <td>
    <select name="Luogo_pubblico" id="Luogo_pubblico">
    <option value="">-- seleziona --</option>
    <?php
    $qcli3=mysql_query("SELECT nome FROM dove WHERE tipo='Luogo_pubblico' AND provincia='".$_SESSION['provincia']."' ORDER BY nome ASC");
    while($cli3=mysql_fetch_assoc($qcli3)){
    echo "<option value="".$cli3['nome']."">".$cli3['nome']."</option>"; }
    ?>
    </select>
    </td>
    </tr>
    <tr align="center">
    <td><strong>Descrizione
    </strong></td>
    <td><strong>Data
    </strong></td>
    <td> </td>
    </tr>
    <tr align="center">
    <td>
    <input type="text" name="descr" id="descr" />
    </td>
    <td><input name="data" class="inputDate2" id="inputDate2" value="<?php //$b=date('d/m/Y'); echo $b; ?>" />
    </td>
    <td><input type="submit" name="cerca" id="cerca" value="Cerca" />
    </td>
    </tr>

                </form>
                </table>[/PHP]
    

    Questo è invece il codice della query che estrai i dati:

    [PHP]$querymsg = "SELECT * FROM msg WHERE id != '0'";

                    if($localita!=''){$querymsg.="AND dove LIKE '%".$localita."%' ";}
                    
                    if($_POST['Luogo_di_interesse']!=''){$querymsg.="AND dove LIKE '%".$_POST['Luogo_di_interesse']."%' ";}
                    
                    if($_POST['Luogo_pubblico']!=''){$querymsg.="AND dove LIKE '%".$_POST['Luogo_pubblico']."%' ";}
                    
                    if($_POST['descr']!=''){$querymsg.="AND dove LIKE '%".$_POST['descr']."%' ";}
                    
                    if($_POST['data']!=''){$querymsg.="AND data LIKE '%".$_POST['data']."%' ";}
                    
                    echo $querymsg;
                    
                    $query_limit = mysql_query($querymsg) or die(mysql_error());
                     while ($msg = mysql_fetch_array($query_limit)) {
                ?>[/PHP]
    

    come vedete per capirci di più stampo anche la query, ma se ad esempio seleziono una voce del campo localita quello che mi stampa è
    SELECT * FROM msg WHERE id != '0'
    come se non avessi selezionato alcuna voce... Come è possibile??

    Grazie in anticipo a tutti.