Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Menu a tendina che formano una query

    Salve a tutti,

    avrei bisogno di una piccola mano.
    Gradirei sapere in che modo è possibile creare dei menu a tendina, che con i valori all'interno (che vengono selezionati dall'utente), formino una query di estrazione da un database. Ad esempio. Se io ho 3 campi: "Tipo evento" "Data evento" "Luogo evento". Allora creo tre menu a tendina. Il menu a tendina "Tipo evento" contiene: "Cinema" "teatro" "Cultura" "Concerti" "Locali". Il "Data evento" contiene "Data odierna" e 10 giorni consecutivi messi in data gg/mm/aaaa. Il "Luogo evento" contiene "Caserta" "Capua" "Napoli".

    Adesso se l'utente seleziona da "Tipo evento" il valore "Cinema", da "Data Evento", la "Data odierna" e da "Luogo evento" la città "Caserta", io ho bisogno che mi vengano estratti dal database tutti quei record che hanno come Tipo dell'Evento il Cinema, che hanno la data odierna come Data dell'Evento e che abbiano come Luogo dell'evento la città di Caserta.

    Qualcuno sa dirmi in che modo posso permettere a questi famosi menu a tendina di creare una query MySQL che viene eseguita sul database quando si clicca sul pulsantino "VAI!" ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    la tua query sarà qualcosa del genere

    codice:
    select * from tabella 
    where tipo_evento = '$tipo_evento' and luogo_evento = '$luogo_evento' 
    and data_evento = '$data_evento'
    recuperi i valori selezionati dal form $tipo_evento e $luogo_evento e per la data, visto che dici di presentarla nel menù a tendina nel formato gg/mm/aaaa, prima di inserirla nella query la converti nel formato iso così

    es
    $dataform = '10/08/2006';
    list($giorno,$mese,$anno) = explode('/',$dataform);
    $dataquery = $anno.'-'.$mese.'-'.$giorno;

    e poi inserisci l'equivalente di $dataquery nella query

  3. #3
    Rieccomi tornato dalle vacanze.

    Grazie della tua risposta Nicola, gentile. Però purtroppo non stai parlando con una persona espertissima, ma che sta studiando giorno per giorno per imparare bene qualcosa di programmazione riguardo a php e mysql. La query l'ho capita, e prendo atto del fatto che è scritta correttamente.

    Tuttavia non ho compreso il resto del post. Tieni conto che sono abituato a fare i menu a tendina tramite i normali <form> <select> <option value>. Di conseguenza ti chiedo se cortesemente riesci a rispiegare il concetto un po più... "a prova di idiota" ... se così è definibile.

    Grazie della disponibilità.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ciao. Allora, le due select relative a luogo e tipo evento le puoi anche creare staticamente con l'html.

    Se tu hai
    <form method="post" action="cerca.php">

    <select name="luogo_evento">
    <option value ="Napoli">Napoli</option>
    <option value ="Caserta">Caserta</option>
    <option value ="Capua">Capua</option>
    ...


    </form>

    nella pagina cerca.php recupererai i valori delle option in base al nome delle select.
    Quindi

    $luogo = $_POST['luogo_evento'];
    stesso discorso per il tipo di evento.

    Per il menù a tendina relativo alle date, visto che non puoi metterti ogni giorno ad aggiornare il codice per mostrare la data corrente e i giorni successivi, il menù lo crei con php.

    Codice PHP:
    // Recupero giorno,mese e anno odierni
    $giorno date('d');
    $mese date('m');
    $anno date('Y');

    // Con un ciclo calcolo i 9 giorni successivi a oggi
    for ($i 0$i 10$i++) {
    $prossimi[] = mktime(0,0,0,date($mese),date($giorno)+$i,date($anno));
    }

    // $prossimi ora contiene le date in formato timestamp, creiamo due array, uno con 
    //la visualizzazione nel nostro formato da mostrare a video, e una nel formato aaaa-mm-gg 
    //da poter direttamente spedire alla query.
    foreach($prossimi as $giorno){
    $visualizza[] = date('d/m/Y',$giorno);
    $cerca[] = date('Y-m-d',$giorno);
    }
    // ora mostriamo le option con i giorni calcolati prima
    echo "<select name=\"date\" >";
    for (
    $i 0$i 10$i++){
    echo 
    "<option value=\"$cerca[$i]\">$visualizza[$i]</option>";
    }
    echo 
    "</select>"
    la data è contenuta nella select che ho chiamato date quindi nella pagina che riceve i dati

    $data = $_POST['date'];

    A questo punto hai tutte le variabili per fare la query. Spero di esser stato chiaro.

  5. #5
    Ciao. Allora, le due select relative a luogo e tipo evento le puoi anche creare staticamente con l'html.
    Se tu hai
    <form method="post" action="cerca.php">

    <select name="luogo_evento">
    <option value ="Napoli">Napoli</option>
    <option value ="Caserta">Caserta</option>
    <option value ="Capua">Capua</option>
    ...


    </form>

    nella pagina cerca.php recupererai i valori delle option in base al nome delle select.
    Ok, dunque devo avere una pagina che contiene questi menu a tendina, che dal pulsante "VAI" si collega alla pagina cerca.php. Fin qui ci sono.

    Quindi

    $luogo = $_POST['luogo_evento'];
    stesso discorso per il tipo di evento.
    In modo da affidare il menu a tendina con form method POST alla variabile $luogo, e alla variabile $tipo per il tipo di evento. Mi pare giusto.

    la data è contenuta nella select che ho chiamato date quindi nella pagina che riceve i dati

    $data = $_POST['date'];
    Ok, ci sono.

    Siccome sto usando il Portale Mambo, ovviamente script PHP, sai per caso se lo script che mi hai indicato è implementabile lì ? Altrimenti dovrò fare una copia HTML del template, e inserirlo in una pagina php.

    Quindi, dopo aver definito tutte queste variabili, potrò fare una cosa del genere, correggimi se sbaglio:
    Codice PHP:
    // dati di accesso al database
    $db_host "localhost";
    $db_user "";
    $db_password "";
    $db_name "";

    // connessione al database
    $db mysql_connect($db_host$db_user$db_password);

    // eseguiamo la query
    $query "SELECT * FROM miatabella 
    WHERE tipo_evento = '
    $tipo_evento' AND luogo_evento = '$luogo_evento
    AND data_evento = '
    $data_evento'"
    Dopodiché, se voglio ottenere i risultati della query, e far comparire la tabella sotto coi results, cosa devo utilizzare ?

    Grazie mille ancora.

  6. #6
    Ehm, non so se si può fare ma ...

    ... UP !

    E' finito in decima pagina...

  7. #7
    up...

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Come recuperare i risultati di una query ho visto che te l'hanno spiegato in un altro post. Mambo non l'ho mai utilizzato e non ti so rispondere. Mi spiace.

  9. #9
    Ciao.

    Ho completato tutto. Ho messo i 3 menu a tendina, e il a href "Vai", che porta al cerca.php. Il cerca.php mi riporta "Undefined Index". Non è che al posto del semplice link "Vai", occorre qualche altra cosa che legga prima i valori dei menu a tendina ?

    E poi, ho controllato la risposta per stampare i risultati della query nell'altro topic. Succede che mi duplica le colonne nei risultati. Ad esempio mi da due volte il luogo evento, due volte la data, eccetera... . Tornando alla domanda a me serve solamente come stampare i risultati di una query in una tabella html che posso formattare come voglio.

    Ti ringrazio, come sempre, anticipatamente.

  10. #10
    il vai deve essere un tasto di tipo submit..
    hai controllato che sia cosi e non un sepmplice link?
    »-(¯`v´¯)-» || AFRO4EVER - Remember the name

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.