Foros del Web » Programando para Internet » PHP »

Duda con setLocale()

Estas en el tema de Duda con setLocale() en el foro de PHP en Foros del Web. Hola buenas, necesitaría saber si el uso de setLocale() afecta a los valores recuperados de base de datos (Mysql con campos DECIMAL(9,2) UNSIGNED), pues necesito ...
  #1 (permalink)  
Antiguo 02/10/2009, 09:12
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 21 años, 11 meses
Puntos: 8
Duda con setLocale()

Hola buenas, necesitaría saber si el uso de setLocale() afecta a los valores recuperados de base de datos (Mysql con campos DECIMAL(9,2) UNSIGNED), pues necesito que el separador de decimales sea una coma y no lo logro:

Código:
    setlocale(LC_NUMERIC, 'Spanish_Spain.28605');

    $var_prueba = 23.75;

    $rs = $this->mysql_query( $sql, $this->getConexion() );
    $objFila = mysql_fetch_object($rs);

    echo "->".$var_prueba."<br/>";           // 23,75
    echo "->".$objFila->precioVenta;         // 23.75
Usando number_format() sí se muestran bien, o también podría usar la función Replace() de MySQL, pero si puedo hacerlo más centralizado y desde la aplicación pues mejor... alguna idea?

Gracias
  #2 (permalink)  
Antiguo 02/10/2009, 09:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Duda con setLocale()

primero, ¿ya leíste el manual al respecto??

ahí, y hablando de setlocale() dice mucha información
http://php.net/setlocale

y segundo... yo no creo que afecte a MySQL, porque son dos cosas muy distintas... una, el entorno de PHP... y otra, el servidor de SQL

para nada lo mismo !!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/10/2009, 09:56
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 21 años, 11 meses
Puntos: 8
Respuesta: Duda con setLocale()

Buenas,

Siempre he tenido la costumbre de cuando tengo una duda primero busco en la documentación oficial del lenguaje con que esté trabajando en cada caso, y aparte también buscar en la web.

Aunque en casos como en este en que la documentación está inglés, y aún cuando me defiendo hay textos que no logro entender.

Entiendo que una cosa es el servidor de BBDD, pero también entiendo que los resultados de las consultas se cargan en arrays de objetos en PHP (el caso que expongo), y que es sobre ellos sobre los que actuaría la función setlocale() (no sobre el gestor de BBDD). Así que sigo sin comprender el porqué no funciona mi caso.

Muchas gracias por responder
  #4 (permalink)  
Antiguo 02/10/2009, 10:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Duda con setLocale()

una cosa es obvia...

setlocale() (supongo que leíste) solo afecta las representaciones de idioma utilizadas en el sistema, por ejemplo fechas, nombre de días, etc...

cuando haces un "fetching" a un resultado de MySQL no estas usando representaciones de idioma, solo estas obteniendo datos en forma de arreglo/objeto, etc...

y eso, no tiene nada que ver con lo primero...

setlocale() solo afecta a representaciones textuales objetivas, no cada dato que se te ocurra... por que un arreglo de objetos, según tu... no dejan de ser eso, datos!!!

solución??

usa otra forma, al menos usando setlocale() no se consigue lo que necesitas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 02/10/2009, 13:30
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 21 años, 11 meses
Puntos: 8
Respuesta: Duda con setLocale()

Bueno, yo en mi ignorancia he pensado que técnicamente es lo mismo setear diréctamente una variable en PHP, que cargar el resultado de una consulta en un resource (pues supongo que PHP realiza algún tipo de parsing de los tipos de datos MySQL hacia los tipos de datos propios (con representación de idioma actual incluida).

Por ello he pensado que sería lo mismo... pero parece que habrá que usar funciones de PHP o MySQL para cada campo con valores decimales.

Código:
    $mivar1 = 23.50;

    $rs = $this->mysql_query( $sql, $this->getConexion() );
    $objFila = mysql_fetch_object($rs);
    $mivar2 = $objFila->precioVenta;
... pues sería sería lo mismo setear diréctamente 23.50, a cargar el dato desde BD, pues en ambos casos PHP se encargaría de la representación de idioma de los datos.

Humildemente, no afirmo que sea tal y como lo expongo, sólo que equivocadamente o no es tal y como lo entiendo y veo más lógico que fuese.

Pero vamos... que no ha sido problema de no buscar información ;)

Gracias de nuevo, y buen y tranquilo fin de semana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:37.