Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Separador de miles mysql

Estas en el tema de Separador de miles mysql en el foro de Bases de Datos General en Foros del Web. Hola Utilizo phpmyadmin para crear una bdd mysql. ¿Qué tipo de campo he de utilizar para poder escribir un número con separador de miles (150.000) ...
  #1 (permalink)  
Antiguo 13/07/2004, 03:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
Separador de miles mysql

Hola

Utilizo phpmyadmin para crear una bdd mysql.

¿Qué tipo de campo he de utilizar para poder escribir un número con separador de miles (150.000) y que me lo reconozca como número y no como texto?

Gracias
  #2 (permalink)  
Antiguo 13/07/2004, 14:56
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
consejo

Al parecer no exsiste este tipo dato pero no se para que te sirva guardarlo con comas, ya que es mas optimo guardarlo sin separadores por que los separadores son obios, si lo que quieres es mostrar los numeros con separadores pues guardalos como numero posterior conviertelo a cadena y manipula la salida cada 3 posiociones es un separador, pero si lo que quieres es que tienes los numeros con separador y guardarlos (ya me dio hueva escribir) espero solucione tu problema si no pues hazlo saber y te digo porque ahorita ya estoy bien cansado bites
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
  #3 (permalink)  
Antiguo 14/07/2004, 03:13
 
Fecha de Ingreso: marzo-2004
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
Perdona por la pregunta tonta, pero, ¿puedo hacer eso desde phpMyAdmin?.

Mis conocimientos son, de momento limitados.

Gracias

Xavi
  #4 (permalink)  
Antiguo 14/07/2004, 08:38
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
phpMyAdmin es una aplicación desarrollada en PHP. Si queres guardar los datos numéricos con comas, debes hacerlo por medio de una aplicación desarrollada en PHP, java, ASP, etc. Aunque la verdad, no le encuentro sentido ya que lo que le interesa al usuario final son los resultados. Para tu caso lo que podrías hacer es mostrar la información FORMATEADA o con MASCARA cuando hagas un select.

Creas un campo numérico donde va a estar tu información y al momento de realizar el SELECT, lo formateas.

Por ejemplo: Tengo una tabla de saldos, donde uno de sus campos se llama monto y es tipo numerico (INT, DOUBLE, etc). Al realizar el SELECT formateando esa columna, lo harías de esta forma:}

Código PHP:
SELECT FORMAT(monto2FROM saldos
Para más información, podes leer esta sección 13.8.4 Miscellaneous Functions del manual de MySQL.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 15/07/2004, 08:32
 
Fecha de Ingreso: marzo-2004
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias. ya voy entendiendo el tema.

Pero resulta que el query (lo hace dreamweaver) es algo como esto:

$query_Recordset1 = sprintf("SELECT `general`.estado, `general`.tipo, `general`.zona, `general`.superficie, `general`.habitaciones, `general`.Lavabos, `general`.precio, `general`.observaciones, `general`.inmobiliaria, `general`.id FROM `general` WHERE general.estado LIKE '%s%%' AND general.tipo LIKE '%s%%' AND general.precio>'%s%%' AND general.precio<'%s%%' ORDER BY `general`.precio", $varestado_Recordset1,$vartipo_Recordset1,$varprec io1_Recordset1,$varprecio2_Recordset1);

¿Dónde pongo el FORMAT?

Gracias de nuevo

Xavi
  #6 (permalink)  
Antiguo 15/07/2004, 11:05
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Yo hago los QUERYS manuales pero si el DREAMWEAVER te lo genera, pues solo editalo de esta forma.
Código PHP:
$query_Recordset1 sprintf("SELECT estado, tipo, zona, superficie, habitaciones, Lavabos, FORMAT(precio, 2), observaciones, inmobiliaria, id
FROM general
WHERE estado LIKE '%s%%' AND tipo LIKE '%s%%' AND precio>'%s%%' AND precio<'%s%%'
ORDER BY precio"
$varestado_Recordset1,$vartipo_Recordset1,$varprec io1_Recordset1,$varprecio2_Recordset1); 
Podes quitar bien la frase ´general´ ya que vas a hacer el SELECT a una sola tabla, por lo que no es necesario y es más fácil de leer. Pero si queres dejarlo, quedaría de esta otra forma:

Código PHP:
$query_Recordset1 sprintf("SELECT `general`.estado, `general`.tipo, `general`.zona, `general`.superficie, `general`.habitaciones, `general`.Lavabos, FORMAT(`general`.precio, 2), `general`.observaciones, `general`.inmobiliaria, `general`.id
FROM `general`
WHERE general.estado LIKE '%s%%' AND general.tipo LIKE '%s%%' AND general.precio>'%s%%' AND general.precio<'%s%%'
ORDER BY `general`.precio"
$varestado_Recordset1,$vartipo_Recordset1,$varprec io1_Recordset1,$varprecio2_Recordset1); 
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL

Última edición por BrujoNic; 15/07/2004 a las 11:07
  #7 (permalink)  
Antiguo 16/07/2004, 02:17
 
Fecha de Ingreso: marzo-2004
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
Hola de nuevo, y gracias por los consejos y la paciencia.

El caso es que escribo:

$query_Recordset1 = sprintf("SELECT estado, tipo, zona, superficie, habitaciones, Lavabos, FORMAT (precio,2), observaciones, inmobiliaria, id FROM `general` WHERE estado LIKE '%s%%' AND tipo LIKE '%s%%' AND precio>'%s%%' AND precio<'%s%%' ORDER BY precio", $varestado_Recordset1,$vartipo_Recordset1,$varprec io1_Recordset1,$varprecio2_Recordset1);

y el "cabezón" va y dice:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(precio,2), observaciones, inmobiliaria, id FROM `general` WHER


¿Es un problema de la versión de MySQL? Tengo instalada la versión MySQL 4.0.16 .

Gracias mil.

Xavi
  #8 (permalink)  
Antiguo 16/07/2004, 09:16
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Versión que tengo de MySQL 4.0.20a-nt, lo probé y funciona bien. No creo que sea problema de la versión que manejas.

¿Qué tipo de campo es precio? yo cree el campo como DOUBLE y sin problemas. Recorda que FORMAT funciona con campos numéricos.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #9 (permalink)  
Antiguo 19/07/2004, 01:29
 
Fecha de Ingreso: marzo-2004
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
El campo es bigint de 18 caracteres.

Gracias

Xavi
  #10 (permalink)  
Antiguo 19/07/2004, 09:27
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Te lo voy a poner con un ejemplo FUNCIONAL:
Código PHP:
# phpMyAdmin SQL Dump
# version 2.5.5-pl1
# [url]http://www.phpmyadmin.net[/url]
#
# Servidor: localhost
# Tiempo de generación: 19-07-2004 a las 09:23:26
# Versión del servidor: 4.0.20
# Versión de PHP: 4.3.6

# Base de datos : `test`


# --------------------------------------------------------

#
# Estructura de tabla para la tabla `tabla`
#

DROP TABLE IF EXISTS `tabla`;
CREATE TABLE `tabla` (
  `
montobigint(18NOT NULL default '0'
TYPE=MyISAM;

#
# Volcar la base de datos para la tabla `tabla`
#

INSERT DELAYED INTO `tabla` (`monto`) VALUES (12345),
(-
123456); 
Ahora la sentencia SQL:
Código PHP:
SELECT FORMATmonto
FROM tabla 
Resultado:
Código PHP:
FORMATmonto)     
12,345.00    
-123,456.00 
Lo que debes tener MUY PRESENTE, es que el tipo campo BIGINT es entero, o sea, no va a guardar decimales (12.1.1 Overview of Numeric Types), pero si funciona el FORMAT.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL

Última edición por BrujoNic; 19/07/2004 a las 09:29
  #11 (permalink)  
Antiguo 06/01/2011, 17:40
 
Fecha de Ingreso: febrero-2010
Ubicación: Colombia, Bogota
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Separador de miles mysql

Cita:
Iniciado por BrujoNic Ver Mensaje
Te lo voy a poner con un ejemplo FUNCIONAL:
Código PHP:
# phpMyAdmin SQL Dump
# version 2.5.5-pl1
# [noparse][url]http://www.phpmyadmin.net[/url][/noparse]
#
# Servidor: localhost
# Tiempo de generación: 19-07-2004 a las 09:23:26
# Versión del servidor: 4.0.20
# Versión de PHP: 4.3.6

# Base de datos : `test`


# --------------------------------------------------------

#
# Estructura de tabla para la tabla `tabla`
#

DROP TABLE IF EXISTS `tabla`;
CREATE TABLE `tabla` (
  `
montobigint(18NOT NULL default '0'
TYPE=MyISAM;

#
# Volcar la base de datos para la tabla `tabla`
#

INSERT DELAYED INTO `tabla` (`monto`) VALUES (12345),
(-
123456); 
Ahora la sentencia SQL:
Código PHP:
SELECT FORMATmonto
FROM tabla 
Resultado:
Código PHP:
FORMATmonto)     
12,345.00    
-123,456.00 
Lo que debes tener MUY PRESENTE, es que el tipo campo BIGINT es entero, o sea, no va a guardar decimales ([URL=http://dev.mysql.com/doc/mysql/en/Numeric_type_overview.html]12.1.1 Overview of Numeric Types[/URL]), pero si funciona el FORMAT.
Porque no utilizar la función de number_format() de PHP para la salida del numero
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 00:46.