• User Attivo

    Query per ricerca con filtri

    Salve a tutti, mi sto dilettando un pò su un combox, quello con le regioni,città province ecc...
    Vi spiego il problema, vorrei ottenere una cosa tipo che selezionando solo campania e napoli ottengo tutte le città, oppure cliccando solo su campania ottengo tutte le province e città, quest'ultima non ha senso però potrebbe essere utile in qualche tipo di ricerca e non delle città.

    Ho provato così ma non ottengo nessun risultato:

    questa è la pagina con le select
    [PHP]
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    <script type="text/javascript" src="lists.js"></script>

    </head>

    <body>
    <form id="form1" name="form1" method="get" action="risultati.php">

    <p>
    <label for="citta"></label>
    <label for="ricerca"></label>
    <br />
    <br />
    <select name="regioni" id="regioni" onchange="loadList('provincie', getSelected(this));clearList('citta')" >
    <option value="0">scegli la regione</option>
    </select>
    <br />
    <br />
    <select name="provincie" id="provincie" onchange="loadList('citta', getSelected(this))" >
    <option value="0">scegli la provincia</option>
    </select>
    <br />
    <br />
    <select name="citta" id="citta">
    <option value="0">scegli la citta</option>
    </select>
    <br />
    <br />
    <br />
    <input type="submit" name="cerca" id="cerca" value="cerca" />
    </p>
    </form>
    <script type="text/javascript">
    //<![CDATA[
    loadList('regioni', 0);
    var queueWatcher = setInterval(checkQueue, 200);
    //]]>
    </script>
    </body>
    </html>
    [/PHP]

    questa è quella con i risultati

    [PHP]
    <?php ....
    $colname_rs_risultati = "-1";
    if (isset($_GET['ricerca'])) {
    $colname_rs_risultati = $_GET['ricerca'];
    }
    mysql_select_db($database_conn, $conn);
    $query_rs_risultati = "SELECT * FROM (citta JOIN provincie) JOIN regioni ON citta.id_provincia = provincie.id_provincia AND provincie.id_regione = regioni.id_regione WHERE citta LIKE '%citta%' AND provincia LIKE '%provincie%' AND regione LIKE '%regioni%' ORDER BY citta ASC";
    $rs_risultati = mysql_query($query_rs_risultati, $conn) or die(mysql_error());
    $row_rs_risultati = mysql_fetch_assoc($rs_risultati);
    $totalRows_rs_risultati = mysql_num_rows($rs_risultati);
    ?>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>

    <body>
    <table border="1" cellpadding="1" cellspacing="1">
    <tr>
    <td>citta</td>
    </tr>
    <?php do { ?>
    <tr>
    <td><?php echo $row_rs_risultati['citta']; ?></td>
    </tr>
    <?php } while ($row_rs_risultati = mysql_fetch_assoc($rs_risultati)); ?>
    </table>
    </body>
    </html>
    <?php
    mysql_free_result($rs_risultati);
    ?>

    [/PHP]

    grazie a tutti in anticipo.


  • User Attivo

    Nessuno può darmi una mano? 😞 GRAZIE

    Ecco come è composto il database

    Database: 'citta'

    Struttura della tabella 'citta'

    CREATE TABLE citta (
    id_citta int(11) NOT NULL AUTO_INCREMENT,
    id_provincia int(50) NOT NULL,
    citta varchar(100) NOT NULL,
    provincia varchar(3) NOT NULL,
    PRIMARY KEY (id_citta)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8112 ;


    Struttura della tabella 'provincie'

    CREATE TABLE provincie (
    id_provincia int(11) NOT NULL AUTO_INCREMENT,
    id_regione int(255) NOT NULL,
    sigla varchar(2) NOT NULL,
    provincia varchar(255) NOT NULL,
    PRIMARY KEY (id_provincia)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=108 ;


    Struttura della tabella 'regioni'

    CREATE TABLE regioni (
    id_regione smallint(6) NOT NULL AUTO_INCREMENT,
    regione varchar(50) NOT NULL,
    PRIMARY KEY (id_regione)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;