Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [SQL] Gestire campi sporchi?

    Buon giorno, vorrei sapere come si gestiscono quei campi che al loro interno hanno come primo valore uno spazio seguito dal dato vero e proprio.Mi spiego meglio:

    codice:
    Nome Campo = " Via Roma"
    In pratica all'inizio ho uno spazio, che hai fini della ricerca mi rompe un pò..perchè
    se il valore che passo per eseguire la select lo gestisco con una trim, non mi funziona..
    in questo modo:

    codice:
    sql="select * from tabella where nome_campo = '".stripslashes(trim($valore))."' order by nome_campo asc";
    Capisco che il problema è all'interno della tabella e quindi del campo, quindi la mia domanda è:
    Come ci si comporta quando a nostra insaputa ci sono dei valori sporchi all'interno dei campi, come nel mio caso?
    Quale select devo eseguire per ovviare a questo problema?

    Grazie mille

  2. #2
    Ciao,
    secondo me la cosa migliore è ripulire la colonna in esame.
    Per esempio, se nella colonna è previsto che ci sia una sola parola, potresti lanciare un replace:
    $titolo = str_replace(" ", "", $titolo);

    Magari altri più esperti posso darti maggiori ragguagli.

  3. #3
    ti ringrazio
    Cmq, ammettiamo che non posso sapere a priori, se i campi sono puliti o meno, come faccio?
    Dovrebbe esserci una select che mi permetta di gestire anche questo tipo di inconveniente, spero...

    mma... attendo con impazienza

  4. #4
    Ma il "campo sporco" si trovo solo ad inizio parola? O anche in mezzo o alla fine?

  5. #5
    solo all'inizio

  6. #6
    Originariamente inviato da ANTAGONIA
    solo all'inizio
    non capisco lo stripslashes... per il resto:

    $valore = trim($valore);

    query... where nome_campo = '$valore'

    se invece lo spazio lo hai nel campo della tabella meglio se lo normalizzi una tantum:

    update tabella
    set campo = trim(campo)

    da precisare che la funzione trim() (quasi identica) puo' essere fatta sia in php che con mysql

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    grazie per avermi risposto
    Quindi, una tantum dovrei normalizzare come mi dici, ogni campo di ogni tabella?
    Mamma mia, ma diventa un lavorone..cmq dato che me lo dici te allora eseguo subito capo

    Io credevo ci fosse una scappatoia con Sql, nel momento che si esegue una query, c'era una prassi da seguire, per ovviare a questi inconvenienti.

    Vabbè Ok...altro passo in avanti.

    Ti e vi ringrazio come sempre ragazzi..
    Alla prossima...

    Buona giornata e buon lavoro.

  8. #8
    Beh, non è un lavorone...
    Hai alcune opzioni:
    1) ti fai un trim ad ogni "echo" dei dati... e non hai più bisogno di nulla;
    2) ti fai un trim con update tabella (una tantum) e correggi la form dele immissioni dei dati in tabella (sempre utilizzando il trim con php) e non avrai più campi sporchi.

    A presto.

  9. #9
    l'uso della trim è ok, nel momento di visualizzare il valore estrapolato da db...e va bene.
    Il mio problema è lo spazio all'interno del campo...tutto quà!!

    Cmq va benissimo ragazzi.Vi ringrazio...

  10. #10
    Originariamente inviato da ANTAGONIA
    l'uso della trim è ok, nel momento di visualizzare il valore estrapolato da db...e va bene.
    Il mio problema è lo spazio all'interno del campo...tutto quà!!

    Cmq va benissimo ragazzi.Vi ringrazio...
    Forse mi sfugge qualcosa ....

    Se nella tabella hai inserito erroneamente o casualmente degli spazi all'inizio o fine della stringa e' molto meglio normalizzarle una volta per tutte invece di passare con trim la stringa ogni volta che la devi estrarre. Lo stesso varra' per i dati che devi inserire ... andranno inseriti normalizzati a prescindere.

    Per le stringhe in arrivo da form, da portare al confronto con quelle del db, .... va da se' che devi controllarne il contenuto tra cui ci sara' pure la rimozione di spazi iniziali e finali con trim() del php.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.