Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Tramutare in x i primi 8 numeri di un codice di 10 cifre

    Salve ragazzi,
    il problema mi pare chiaro. Avendo un codice, immesso in database dall'utente tramite un form, numerico ad esempio di 10 cifre, come si potrebbero tramutare in x solo le prime 7 o 8 cifre e lasciare visibili le ultime?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select concat(repeat('x',7),substring(codice from 8)) as nascosto
    from tabella

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Grazie Nicola,
    appena posso, in giornata, lo testo e vediamo un po'.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ciao Nicola,
    testando il codice ho avuto questo problema. Se inserisco ad esempio un codice di 9 cifre, e scrivo la seguente query:

    Codice PHP:
    $dati mysql_query("SELECT *, date_format(dataevento,'%d-%m-%Y %H:%i') AS 'dataora', concat(repeat('x',5),substring(cab from 9)) AS nascosto FROM esempio"); 
    quando vado a stampare la variabile nascosto mi visualizza sì le 5 x (come da impostazione), ma non mi visualizza le ultime 4 cifre, cioè quelle dal 6 al 9 appunto. In pratica mi vengono fuori solo 5 x. Perchè?

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Metti substring from 6 e comunque la nona te la dovrebbe visualizzare comunque.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho riscritto la query così:

    Codice PHP:
    $dati mysql_query("SELECT *, date_format(dataevento,'%d-%m-%Y %H:%i') AS 'dataora', concat(repeat('x',5),substring(cab from 6)) AS codicecab, concat(repeat('x',5),substring(abi, 6, 20)) AS codiceabi FROM esempio");
    $array mysql_fetch_array($dati);
    echo 
    "<h3>cab:</h3> ".$array['codicecab']."

    "

    echo 
    "<h3>abi:</h3> ".$array['codiceabi']."
    "
    ;
    echo 
    "Pubblicato il ".substr($array ['dataora'],0,10)." alle "substr($array ['dataora'],11,5); 
    provando sia from 6, che seguendo (per il codice abi) le istruzioni del manuale sqlsulla funzione substring.

    Nulla da fare!!!! Mi stampa solo le 5 x e basta!!!!!

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova a eseguire la query da phpmyadmin o dall'interfaccia che usi e vedi cosa ti restituisce. Sicuramente non dipende da quello ma togli quegli apici dall'alias dataora.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho eseguito la query con phpmyadmin (sto testando in locale con easyphp) ed ecco che mi appare:


    #1267 - Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation 'concat'

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    E tu usa lo stesso e non mischiarli.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Perdona la mia ignoranza,
    ma che vuol dire usare lo stesso?

    Di quel che c'è scritto io non ho fatto nulla, ossia nessuna mescolanza! Come faccio a cambiarli?

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.