Visualizzazione risultati 1 fino 3 di 3

Discussione: Ricerca interna al database

  1. #1
    Guest

    Predefinito Ricerca interna al database

    Salve ho una pagina con una barra di ricerca interna, ovvero cerca i dati che ho nel db.

    In questo momento ce l'ho attiva però vorrei fare in modo che la parola cercata sia UGUALE al record nella tabella,

    quindi se scrivo CIAO deve trovarmi il record CIAO, mentre ora se scrivo solamente CIA mi trova tutti i record che hanno quelle tre lettere all'interno della frase.

    Lo script che ho è questo:

    Codice PHP:
    <?php

    // connettiamoci il nostro database

    $db_host = "localhost";
    $db_user = "#####";
    $db_password = "";
    $db_name = "#######";

    //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
    if (isset($_GET['ricerca'])) {
    $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 formative WHERE iva LIKE '%$cerca%' OR nomefile LIKE '%$cerca%' OR ragione LIKE '%$cerca%'";

    $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)) {

    $piva = $row['iva'];
    $file = $row['nomefile'];
    $ragione = $row['ragione'];

    // stampiamo i nostri dati
    echo $ragione;
    echo
    $piva;
    echo
    $file;



    }

    } else {

    echo
    "Nessun temine alla ricerca trovato";

    }


    } else {

    echo
    "Devi inserire almeno 3 caratteri";

    }

    } else {

    echo
    "Non hai compilato il modulo ricerca";

    }

    }

    ?>
    Spero sia possibile aiutarmi, grazie.

  2. #2
    Guest

    Predefinito

    Hola, il tuo campo ricerca influenza 3 parametri di ricerca nella query, nel dubbio li ho modificati tutti e tre.
    Se vuoi l'effetto solo su uno basta che sostituisci i like e carattere jolly % con operatori logici.
    Bye, fammi sapere se funge,


    Codice PHP:
    $query = "SELECT * FROM formative WHERE iva LIKE '%$cerca%' OR nomefile LIKE '%$cerca%' OR ragione LIKE '%$cerca%'";
    utilizza

    Codice PHP:
    $query = "SELECT * FROM formative WHERE iva='".$cerca."' OR nomefile='".$cerca."' OR ragione='".$cerca."'";
    Ultima modifica di pxy : 08-01-2015 alle ore 13.56.58

  3. #3
    Guest

    Predefinito

    Ciao, mi sono dimenticato e avevo già risolto appena ho aperto il post (ho fatto esattamente come hai scritto tu) Grazie mille lo stesso

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •