Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    12

    Filtri per ricerca database mysql

    Salve
    ho gia dato un occhiata al forum, ma non ho trovato niente di adatto a me e non ne vengo a capo.
    Premetto che non sono un grande esperto di php e meno di mysql, ma sto costruendo un modulino di ricerca che mi permette di filtrare dei dati da un database in base alla informazioni che inserisco.
    Per adesso mi funziona solo con un campo <option> ma vorrei poter inserire piu campi nel form e non capisco come farlo funzionare.
    Sicuramente e' semplice e in poche righe potete aiutarmi
    Di seguito il codice che sto utilizzando ( ho gia visto che e' stato utilizzato da altri qui) e dove vorrei inserire altri campi per la ricerca.
    Ora di default e' puntato su regioni.
    Spero di poter risolvere presto.
    Grazie

    Codice PHP:
    <form action='index.php?ricerca=ok' method='POST'>



    [b]area[/b]

    <select name="regione">
    <option>Abruzzo</option>
    <option>Basilicata</option>
    <option>Calabria</option>
    <option>Campania</option>
    <option>Emilia Romagna</option>
    <option>Friuli Venezia Giulia</option>
    <option>Lazio</option>
    <option>Liguria</option>
    <option>Lombardia</option>
    <option>Marche</option>
    <option>Molise</option>
    <option>Piemonte</option>
    <option>Puglia</option>
    <option>Sardegna</option>
    <option>Sicilia</option>
    <option>Toscana</option>
    <option>Trentino Alto Adige</option>
    <option>Umbria</option>
    <option>Valle d'Aosta</option>
    <option>Veneto</option>
    </select>
    <input type='submit' value='Invia'>

    </form>


    <?php

    // connettiamoci il nostro database

    $db_host "internal-db.s76756.gridserver.com";
    $db_user "db76756_giuri";
    $db_password "tadda2011";
    $db_name "db76756_giurisprudenza";

    //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

    $regione $_POST['regione'];

    // vediamo se è stato compilato il campo

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

    // ora vediamo se supera i tre caratteri

    if ( strlen($regione) >= ) {

    // ora depuriamo la stringa da cercare sul database 

    $regione =  mysql_escape_string(stripslashes($regione)); 

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

    $query "SELECT * FROM RACCOLTA WHERE area LIKE '%$regione%' OR area_tematica LIKE '%$regione%' OR data LIKE '%$regione%' OR numero LIKE '%$regione%' OR autorita LIKE '%$regione%' OR sezione LIKE '%$regione%' OR quesiti LIKE '%$regione%' OR dispositivo LIKE '%$regione%'"

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

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

    $dentro_la_querymysql_fetch_assoc($risposta);

    if ( 
    $dentro_la_query == TRUE ) {

    while(
    $rowmysql_fetch_assoc($risultato)) { 




    $area $row['area'];
    $area_tematica $row['area tematica'];
    $data $row['data'];
    $numero $row['numero'];
    $autorita $row['autorita'];
    $sezione $row['sezione'];
    $quesiti $row['quesiti'];
    $dispositivo $row['dispositivo'];

    // stampiamo i nostri dati


    echo "<table border=\"0\" >";
    echo 
    "<tr><th>area: $areao
    </th>"
    ;
    echo 
    "<th>area tematica : $area_tematica
    </th>"
    ;

    echo 
    "<th>data : $data
    </th>"
    ;
    echo 
    "<th>numero : $numero
    </th>"
    ;
    echo 
    "<th>autorita : $autorita
    </th>"
    ;
    echo 
    "<th>sezione : $sezione
    </th>"
    ;
    echo 
    "<th>quesiti : $quesiti
    </th>"
    ;
    echo 
    "<th>dispositivo : $dispositivo
    </th>"
    ;
        
    echo 
    "</tr>";
        
    echo 
    "</table>";


    }

    } else {

    echo 
    "Nessun temine alla ricerca trovato";

    }


    } else {

    echo 
    "Devi inserire almeno 3 caratteri";

    }

    } else {

    echo 
    "Non hai compilato il modulo ricerca";

    }

    }

    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    98

    Re: Filtri per ricerca database mysql

    Ci sono vari errori o ridondanze in questo script; te li evidenzio nel codice


    Originariamente inviato da mauro78
    Codice PHP:
    <form action='index.php?ricerca=ok' method='POST'>



    [b]area[/b]

    <select name="regione">
    <option>Abruzzo</option>
    <option>Basilicata</option>
    <option>Calabria</option>
    <option>Campania</option>
    <option>Emilia Romagna</option>
    <option>Friuli Venezia Giulia</option>
    <option>Lazio</option>
    <option>Liguria</option>
    <option>Lombardia</option>
    <option>Marche</option>
    <option>Molise</option>
    <option>Piemonte</option>
    <option>Puglia</option>
    <option>Sardegna</option>
    <option>Sicilia</option>
    <option>Toscana</option>
    <option>Trentino Alto Adige</option>
    <option>Umbria</option>
    <option>Valle d'Aosta</option>
    <option>Veneto</option>
    </select>
    <input type='submit' value='Invia'>

    </form>


    <?php

    // connettiamoci il nostro database


    ///// MAI POSTARE PASSWORD DI DATABASE
    $db_host "internal-db.s76756.gridserver.com";
    $db_user "db76756_giuri";
    $db_password "tadda2011";
    $db_name "db76756_giurisprudenza";

    //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']; // QUI PUOI FARE DIRETTAMENTE $ricerca=mysql_real_escape_string($GET['ricerca'])

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

    if ( $ricerca == 'ok' ) {

    // recuperiamo ora cerca inviato con post

    $regione $_POST['regione']; // idem come sopra

    // vediamo se è stato compilato il campo

    if ( $regione == TRUE && $regione != "" ) { // qui farei if (isset($regione) && $regione!='')

    // ora vediamo se supera i tre caratteri

    if ( strlen($regione) >= ) {

    // ora depuriamo la stringa da cercare sul database 

    $regione =  mysql_escape_string(stripslashes($regione)); //inutile qui

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

    $query "SELECT * FROM RACCOLTA WHERE area LIKE '%$regione%' OR area_tematica LIKE '%$regione%' OR data LIKE '%$regione%' OR numero LIKE '%$regione%' OR autorita LIKE '%$regione%' OR sezione LIKE '%$regione%' OR quesiti LIKE '%$regione%' OR dispositivo LIKE '%$regione%'"

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

    $risposta mysql_query($query) or die ("Utilizza termini più specifici!"); // PERCHÉ DUE QUERY IDENTICHE?

    $dentro_la_querymysql_fetch_assoc($risposta); // COSÌ TI MANGI UN RECORD CHE NEL WHILE NON APPARE -> inutile e devastante:)

    if ( $dentro_la_query == TRUE ) { //QUI FARE if (mysql_num_rows($risposta)>0) o puoi anche ometterlo

    while($rowmysql_fetch_assoc($risultato)) { 




    $area $row['area'];
    $area_tematica $row['area tematica'];
    $data $row['data'];
    $numero $row['numero'];
    $autorita $row['autorita'];
    $sezione $row['sezione'];
    $quesiti $row['quesiti'];
    $dispositivo $row['dispositivo'];

    // stampiamo i nostri dati


    echo "<table border=\"0\" >";
    echo 
    "<tr><th>area: $areao
    </th>"
    ;
    echo 
    "<th>area tematica : $area_tematica
    </th>"
    ;

    echo 
    "<th>data : $data
    </th>"
    ;
    echo 
    "<th>numero : $numero
    </th>"
    ;
    echo 
    "<th>autorita : $autorita
    </th>"
    ;
    echo 
    "<th>sezione : $sezione
    </th>"
    ;
    echo 
    "<th>quesiti : $quesiti
    </th>"
    ;
    echo 
    "<th>dispositivo : $dispositivo
    </th>"
    ;
        
    echo 
    "</tr>";
        
    echo 
    "</table>";


    // SE MODIFICHI DEVI RIVEDERE LE CHIUSURE DEI }

    } else {

    echo 
    "Nessun temine alla ricerca trovato";

    }


    } else {

    echo 
    "Devi inserire almeno 3 caratteri";

    }

    } else {

    echo 
    "Non hai compilato il modulo ricerca";

    }

    }

    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    12
    ARGHH! grossa cavolata! Ho provveduto a cambiare i dati del DB!
    Provo a mettere le modifiche che mi hai scritto ( grazie)!

    Ma non ho ben capito come poter utilizzare un altro input field...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    98
    facciamo una cosa... fai le modifiche e poi vediamo... good luck

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    12
    Cosa ho omesso?
    non mi stampa piu i risultati
    Tieni conto che non sono un esperto di php

    Codice PHP:
    $ricerca=mysql_real_escape_string($GET['ricerca']);


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

    if ( $ricerca == 'ok' ) {

    // recuperiamo ora cerca inviato con post

    $regione=mysql_real_escape_string($GET['regione']) ;


    // vediamo se è stato compilato il campo

    if (isset($regione) && $regione!='') {

    // ora vediamo se supera i tre caratteri

    if ( strlen($regione) >= ) {

    // ora depuriamo la stringa da cercare sul database 



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

    $query "SELECT * FROM RACCOLTA WHERE area LIKE '%$regione%' OR area_tematica LIKE '%$regione%' OR data LIKE '%$regione%' OR numero LIKE '%$regione%' OR autorita LIKE '%$regione%' OR sezione LIKE '%$regione%' OR quesiti LIKE '%$regione%' OR dispositivo LIKE '%$regione%'"

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

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



    if (
    mysql_num_rows($risposta)>0) {

    while(
    $rowmysql_fetch_assoc($risultato)) { 




    $area $row['area'];
    $area_tematica $row['area tematica'];
    $data $row['data'];
    $numero $row['numero'];
    $autorita $row['autorita'];
    $sezione $row['sezione'];
    $quesiti $row['quesiti'];
    $dispositivo $row['dispositivo'];

    // stampiamo i nostri dati


    echo "<table border=\"0\" >";
    echo 
    "<tr><th>area: $areao
    </th>"
    ;
    echo 
    "<th>area tematica : $area_tematica
    </th>"
    ;

    echo 
    "<th>data : $data
    </th>"
    ;
    echo 
    "<th>numero : $numero
    </th>"
    ;
    echo 
    "<th>autorita : $autorita
    </th>"
    ;
    echo 
    "<th>sezione : $sezione
    </th>"
    ;
    echo 
    "<th>quesiti : $quesiti
    </th>"
    ;
    echo 
    "<th>dispositivo : $dispositivo
    </th>"
    ;
        
    echo 
    "</tr>";
        
    echo 
    "</table>";


    }

    } else {

    echo 
    "Nessun temine alla ricerca trovato";

    }


    } else {

    echo 
    "Devi inserire almeno 3 caratteri";

    }

    } else {

    echo 
    "Non hai compilato il modulo ricerca";

    }

    }

    ?> 

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    98
    ti da errori di sintassi? Non credo non sputi fuori proprio niente...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    12
    non da risultato ne errore!
    appunto mi chiedevo se avevo sbagliato qualcosa!

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    98
    Metti echo davanti a $query e riporta qui cosa stampa

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    12
    Ho messo cosi

    echo $query = "SELECT *......


    non succede niente!

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    98
    non avevo visto questo:

    $GET ->errorissimo

    $_GET -> giusto

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.