Visualizzazione dei risultati da 1 a 10 su 10

Discussione: form di ricerca e php

  1. #1

    form di ricerca e php

    Buongiorno a tutti,
    piccolo (spero piccolo) problemino php.
    Ho creato un form con delle voci selezionabili e l’ho messo nella mia pagina index.php, come action del form ho inserito una pagina cerca.php dove vorrei che venissero visualizzati i risultati estratti dal database. Il codice che ho usato nella pagina cerca.php è quello che segue, ma qualcosa non funziona e mi esce questa Notice: Undefined index: ricerca in D:\...\...\cerca.php on line 41 (che corrisponde a $ricerca = $_GET['ricerca']; )

    Codice:

    <?php

    $db_host = "localhost";
    $db_user = "root";
    $db_password = "xxx";
    $db_name = "database";

    //connetto il database
    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');

    // recuperiamo il valore ricerca inviato con get
    $ricerca = $_GET['ricerca'];

    // vediamo se è stato inviato, e quindi uguale a ok

    if ( $ricerca == 'ok' ) {

    // recuperiamo ora cerca inviato con post

    $cerca = $_POST['cerca'];

    // vediamo se è stato compilato il campo

    if ( $cerca == TRUE && $cerca != "" ) {

    // ora vediamo se supera i tre caratteri

    if ( strlen($cerca) >= 3 ) {

    // ora depuriamo la stringa da cercare sul database

    $cerca = mysql_escape_string(stripslashes($cerca));

    // ora possiamo effettuare la nostra ricerca sul db, state attenti alla sintassi

    $query = "SELECT * FROM struttura WHERE tipologia LIKE '%$cerca%' OR provincia LIKE '%$cerca%' OR località LIKE '%$cerca%' ORDER BY id";

    $risultato = mysql_query($query) or die (mysql_error());

    $risposta = mysql_query($query) or die ("Utilizza termini più specifici!");

    $dentro_la_query= mysql_fetch_assoc($risposta);

    if ($dentro_la_query == TRUE ) {

    while($row= mysql_fetch_assoc($risultato)) {

    $tipologia = $row['tipologia'];
    $provincia = $row['provincia'];
    $località = $row['località'];

    // stampiamo i nostri dati

    echo "Tipologia: $tipologia
    ";
    echo "Provincia : $provincia
    ";
    echo "Località : $località
    ";



    }

    } else {

    echo "Nessun termine alla ricerca trovato";

    }
    } else {

    echo "Non hai compilato il modulo ricerca";

    }

    }
    }
    ?>


  2. #2
    Posta anche il form HTML.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3

    il form è

    <form action='cerca.php' method='POST'>


    Tipologia
    <select name=”cerca” type=”text” >
    <option>Seleziona</option>
    <option selected=”selected”>Hotel</option>
    <option>Bed & Breakfast</option>
    <option>Casa Vacanze</option>
    </select>
    </p>


    Provincia
    <select name=”cerca” type=”text” >
    <option>Seleziona</option>
    <option selected=”selected”>Chieti</option>
    <option>L'Aquila</option>
    <option>Perugia</option>
    <option>Teramo</option>
    </select>
    Località
    <select name=”cerca” type=”text” >
    <option>Seleziona</option>
    <option selected=”selected”>Chieti</option>
    <option>L'Aquila</option>
    <option>Perugia</option>
    <option>Teramo</option>
    </select>


    <input type='submit' value='Invia'>
    </p>
    </p>
    </form>

  4. #4
    Nel form usi il POST per cui devi recuperare i valori da tale array e NON da quello GET:

    Codice PHP:
    ...
    $ricerca $_POST['ricerca'];
    ... 
    P.S.
    Inoltre come nome utilizzi "ricerca" mentre le select di chiamano "cerca".

    P.P.S.
    Non puoi chiamare tutte le select con lo stesso nome.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5

    non va

    niente non funziona...

    ho apportato le modifiche al form della index.php

    <form action='cerca.php' method='POST'>


    Tipologia
    <select name=”cercahotel” type=”text” >
    <option>Seleziona</option>
    <option selected=”selected”>Hotel</option>
    <option>Bed & Breakfast</option>
    <option>Casa Vacanze</option>
    </select>
    </p>


    Provincia
    <select name=”cercaprovincia” type=”text” >
    <option>Seleziona</option>
    <option selected=”selected”>Chieti</option>
    <option>L'Aquila</option>
    <option>Perugia</option>
    <option>Teramo</option>
    </select>
    Località
    <select name=”cercalocalità” type=”text” >
    <option>Seleziona</option>
    <option selected=”selected”>Chieti</option>
    <option>L'Aquila</option>
    <option>Perugia</option>
    <option>Teramo</option>
    </select>


    <input type='submit' value='Invia'>
    </p>
    </p>
    </form>

    mentre alla pagina cerca.php tu diresti di fare così??

    <?php

    $db_host = "localhost";
    $db_user = "root";
    $db_password = "xxx";
    $db_name = "database";

    //connetto il database

    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');

    // recuperiamo il valore ricerca inviato con get

    $ricerca = $_POST['ricerca'];

    // vediamo se è stato inviato, e quindi uguale a ok

    if ( $ricerca == 'ok' ) {

    // recuperiamo ora cerca inviato con post

    $cerca = $_POST['cerca'];

    // vediamo se è stato compilato il campo

    if ( $cerca == TRUE && $cerca != "" ) {

    // ora vediamo se supera i tre caratteri

    if ( strlen($cerca) >= 3 ) {

    // ora depuriamo la stringa da cercare sul database

    $cerca = mysql_escape_string(stripslashes($cerca));

    // ora possiamo effettuare la nostra ricerca sul db, state attenti alla sintassi

    $query = "SELECT * FROM struttura WHERE tipologia LIKE '%$cerca%' OR provincia LIKE '%$cerca%' OR località LIKE '%$cerca%' ORDER BY id";

    $risultato = mysql_query($query) or die (mysql_error());

    $risposta = mysql_query($query) or die ("Utilizza termini più specifici!");

    $dentro_la_query= mysql_fetch_assoc($risposta);

    if ($dentro_la_query == TRUE ) {

    while($row= mysql_fetch_assoc($risultato)) {

    $tipologia = $row['tipologia'];
    $provincia = $row['provincia'];
    $località = $row['località'];

    // stampiamo i nostri dati

    echo "Tipologia: $tipologia
    ";
    echo "Provincia : $provincia
    ";
    echo "Località : $località
    ";



    }

    } else {

    echo "Nessun termine alla ricerca trovato";

    }
    } else {

    echo "Non hai compilato il modulo ricerca";

    }

    }
    }
    ?>




    HELP

  6. #6
    Forse non ti è chiaro che il nome del campo che recuperi deve essere UGUALE a quello che dichiari nel componente HTML:

    Codice PHP:
    ...
    $ricerca $_POST['ricerca'];
    ... 
    Non vedo alcun componente di nome "ricerca"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    ok perdonami sto entrando in confusione ma credo di aver capito.

    Comunque se utilizzo un solo campo funziona, ma inserendo più campi di ricerca non va

  8. #8
    Io ricontrollerei meglio il codice dato che istanzi variabili che non utilizzi ed utilizzi variabili non istanziate!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9

    ?

    parli turco per me ma devi anche sapere che io e il php non ci amiamo...per ora!!!

  10. #10

    inizia a funzionare

    miraculummmm...grazie mille per i suggerimenti.
    Ora vorrei solo un chiarimento...facendo la ricerca nel database inserendo nel form determinati valori, escono tutti i risultati del database...why?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.