Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310

    [MYSQL] - ricerca stringa con l'apice

    Ho una tabella "ANAGRAFICA" in cui sono inserite le anagrafiche della mia rubrica.
    Al momento dell'inserimento faccio il controllo dei campi e per eventuali nomi con l'apice utilizzo la funzione addslashes di php. Fin qui tutto ok il nome per esempio Calabro' lo inserisce nel DB come Calabro\' .

    Ho creato una funzione per la ricerca.

    "select * from ANAGRAFICA where cognome like '".$ricerca."%' "

    fin qui tutto ok, se faccio la ricerca funziona correttamente, ma se il campo ricerca per esempio è Calabro\' non funziona! Non mi da errore ma non mi restituisce nessun record, pur essendo presente nel DB scritto proprio uguale.
    Come posso risolvere il problema??

    GRAZIE

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    prova ad usare la funzione stripslashes per ritrasformare gli \' in '

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    e che c'entra stripslashes, questa mi serve per togliere lo slashes ma io devo fare una select e quindi devo utilizzarlo lo slashes, e come ho scritto , nel db c'è la stringa con lo slash. Non devo visualizzare il contenuto.

    Sedevo cercare la stringa Calabro' in una tabella come devo fare?

    Nel db è logicamente salvata come Calabro\'.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310

    Le ho provate ma non cambia nulla:
    ("select * from ANAGRAFICA where cognome like '"Calabro\\'%' ");
    non mi restituisce nulla!!!

  6. #6
    tu mi dici che fare

    echo "Calabro\'";

    ed

    echo mysql_real_escape_string("Calabro\'");

    da la stessa cosa??
    www.gext.it

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    Originariamente inviato da tarini
    tu mi dici che fare

    echo "Calabro\'";

    ed

    echo mysql_real_escape_string("Calabro\'");

    da la stessa cosa??

    la prima è Calabro\\' e la seconda Calabro\\\\'

    si ma io devo fare la ricerca nel db della STRINGA Calabro' come la devo fare?
    Se ci metto quella con uno slash (come è scritta anche nel DB) non mi restituisce nulla,
    se ci metto quella con 3 slash neanche.
    quindi......

  8. #8
    quindi tu hai fatto
    $query = "SELECT * FROM user WHERE nome = '".mysql_real_escape_string("Calabro\'")."'";

    e non da niente??
    www.gext.it

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    Originariamente inviato da tarini
    quindi tu hai fatto
    $query = "SELECT * FROM user WHERE nome = '".mysql_real_escape_string("Calabro\'")."'";

    e non da niente??
    Io faccio :

    "select distinct * from anagrafica where ragione like '".mysql_real_escape_string("Calabro\'")."%' "

    ma nulla non succede nulla!!!


    cosi facendo se mi faccio stampare la query scrive Calabro\\\\'

  10. #10
    Prova a mettere anche a destra '%', così:

    codice:
    "select * from ANAGRAFICA where cognome like '%".$ricerca."%' "
    vedi un pò se funziona....

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.