PHP - Problema con el format del valor de un campo

   
Vista:

Problema con el format del valor de un campo

Publicado por Aprendiendo (17 intervenciones) el 23/12/2014 01:53:36
Hola de nuevo a tod@s.

Veréis a ver si me podéis ayudar mientras busco la forma de hacerlo.

Tengo un campo en mi base de datos mysql del tipo varchar el contenido del mismo normalmente son números ósea el precio de un vehículo y lo formateo de esta manera.
1
<td align="right" width="35" class="Caracteristicas"><?php echo number_format ($registro['Precio'], 0, ',', '.'); ?></td>
Hasta aquí funciona bien, pero el problema es que también doy la opción de que al dar de alta el vehículo si no quieren poner precio puedan poner cualquier palabra corta por ejemplo: "Consultar Precio".

Lo que me ocurre es que si ponen números me lo formatea correctamente, pero si ponen lo de "Consultar Precio" se inserta correctamente en la base de datos pero al visualizar la ficha me da el siguiente error:
1
Warning: number_format() expects parameter 1 to be double, string given in C:\wamp\www\PRUEBAS Vehiculos-2014-12-14\FichaVehiculos.php on line 653
¿Como lo puedo solucionar?. a ver si me podeis echar un cable.

Como siempre gracias a tod@s por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con el format del valor de un campo

Publicado por Yamil Bracho (532 intervenciones) el 23/12/2014 02:30:52
Usa jaavscript o mejor aun Jquery que puedes conseguir muchos plugin de validacion.
Mientras tanto puedes darle una miradita a
http://www.htmlcodetutorial.com/forms/index_famsupp_158.html
http://stackoverflow.com/questions/469357/html-text-input-allow-only-numeric-input
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con el format del valor de un campo

Publicado por Aprendiendo (17 intervenciones) el 23/12/2014 10:57:25
Gracias Yamil Bracho.

Veras el JavaScript no es todavía mi fuerte, en ello ando algo flojillo, por lo tanto te pido disculpas a ti y a los compañeros que me leen por si digo alguna tontería al contestar.

En principio mi problema no esta en la validación del contenido que se introduce en dicho campo a través de un input en un form, porque ya dispongo de una función que funciona para que no se puedan introducir signos ni cosas extrañas que no sean caracteres y números.

Mi problema es que si el contenido son solo números quiero formatearlos y si en el contenido del campo hay aunque solo sea un solo carácter no me formatee dicho contenido, (por supuesto estoy refiriéndome a formatear o no formatear al ver el contenido del campo en la ficha NO al introducir los valores en la base de datos, cosa que hace correctamente ya que me introduce en el campo de la base de datos exactamente lo que introduzco en el input del form).

Para daros una idea he probado varias cosas parecidas a esta que no funcionan;
1
2
3
4
5
6
7
8
9
10
<?php
   if ((key==48) || (key==49) || (key==50) || (key==51) || (key==52) || (key==53) || (key==54) || (key==55) || (key==56) || (key==57) ){?>
    <td align="right" width="35" class="Caracteristicas"><?php echo number_format ($registro['Precio'], 0, ',', '.'); ?></td>
   <?php
   }else{
   ?>
    <td align="right" width="35" class="Caracteristicas"><?php echo $registro['Precio']; ?></td>
    <?php
    }
	?>

La verdad lo que necesitaría es saber como puedo averiguar si hay algún carácter alfabético (AaBbCc etc...) en el campo de la base de datos y con un if hacer una cosa o la otra. No se si se entiende bien lo que necesito, espero me podáis echar una mano.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con el format del valor de un campo

Publicado por xve (5515 intervenciones) el 23/12/2014 10:34:00
Lo puedes hacer con un condicional... algo así:

1
2
3
4
5
6
7
8
<td align="right" width="35" class="Caracteristicas">
<?php
if(is_number($registro['Precio']))
    echo number_format ($registro['Precio'], 0, ',', '.');
else
    echo $registro['Precio'];
?>
</td>

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con el format del valor de un campo

Publicado por Aprendiendo (17 intervenciones) el 23/12/2014 11:24:11
Perdona xve no vi tu respuesta estaba contestando a Yamil Bracho.

Veras he probado tu respuesta pero lógicamente como me falta la función "is_number" no la puedo probar de forma correcta, como ya indique al compañero Yamil Bracho ando muy flojillo en JavaScript, abusando de tu amabilidad me podrias decir como hacer dicha función o donde puedo ver como hacerla.

Por supuesto mientras espero tu respuesta voy a intentar hacerlo por mi mismo.

Gracias a los dos, un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SOLUCIONADO: Problema con el format del valor de un campo

Publicado por Aprendiendo (17 intervenciones) el 24/12/2014 09:39:41

SOLUCIONADO



Gracias a los 2 consegui solucionarlo.

Comente anteriormente que me faltaba la función "is_number" pero en realidad no era así, ese comentario vino por mi corta experiencia en JavaScript, el problema era otro.

Solo había que cambiar esta línea:
1
if(is_number($registro['Precio']))

Por esta otra:
1
if(is_numeric($registro['Precio']))

Sencillamente sustituí (is_number) por (is_numeric).

Gracias por vuestra ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar