Foros del Web » Programando para Internet » PHP »

Consejo

Estas en el tema de Consejo en el foro de PHP en Foros del Web. Revisando "de nuevo", ahora aceptaré algunos consejos, de ¿por qué? y que puede estar mal o tambien que se puede mejorar para las siguientes funciones. ...
  #1 (permalink)  
Antiguo 26/04/2009, 22:16
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Consejo

Revisando "de nuevo", ahora aceptaré algunos consejos, de ¿por qué? y que puede estar mal o tambien que se puede mejorar para las siguientes funciones.

Código PHP:
public function asignarPrecioCU($arg){
if(!empty(
$arg)){
$control="0123456789.";
$b=strlen($arg);
for(
$a=0;$a<=$b;$a++){
if(
strpos($arg,$control,$a)){
$this->precioCU=$arg;
}
}
}
}

public function 
obtenerPrecioCU(){
if(!empty(
$this->precioCU)){
$control=".";
if(
strpos($this->precioCU,$control,0)){
$this->precioCU='0'.$this->precioCU;
}
return 
'$'.$this->precioCU;}else{return ("No se ha especificado precio de compra unitario o se ha ingresado un valor no valido, para el precio de compra unitario solo estan permitidos numeros 0123456789 y .(punto).");}

"Efectivamente" la funcion obtenerPrecioCU siempre indica el caso contrario, el error imagino radica en el control de la funcion asignarPrecioCU pero no imaginaria exactamente el ¿por qué?.

Agradeceria una breve explicación.
  #2 (permalink)  
Antiguo 26/04/2009, 22:31
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Consejo

Trata de hacer esto


public function asignarPrecioCU($arg){
if(!empty($arg)){
$control="0123456789.";
$b=strlen($arg);
for($a=0;$a<=$b;$a++){

$posicion=strpos($arg,$control,$a);


}

if($posicion===true)

{
$this->precioCU=$arg;

}

}
  #3 (permalink)  
Antiguo 26/04/2009, 22:41
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Consejo

El resultado del control siempre es "false", al igual con lo que me indicas que relativamente es similar, seguiré revisando.
  #4 (permalink)  
Antiguo 26/04/2009, 22:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Consejo

¿Estas usando los parámetros correctamente?

Recuerda que el primer parámetro de la función strpos() es el PAJAR, mientras que el 2do parámetro es la AGUJA.

http://www.php.net/manual/en/function.strpos.php
  #5 (permalink)  
Antiguo 26/04/2009, 22:47
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Consejo

Hasta donde tengo entendido si, claro.
En conclusión desde tu punto "pajar" es similar a la cadena de caracteres y la "aguja" el caracter que deseo encontrar.

strpos(pajar,aguja) similar a strpo($arg,$control).
  #6 (permalink)  
Antiguo 26/04/2009, 22:50
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Consejo

me supongo que lo que quieres hacer es que en el arg solo existe numeros y puntos??? si es eso??? eso se hace con expresiones regulares, checa sobre validaciones con expresiones regulares
  #7 (permalink)  
Antiguo 26/04/2009, 22:50
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Consejo

Oh, ya he visto mi error.
  #8 (permalink)  
Antiguo 26/04/2009, 22:55
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Consejo

Me he confundido sólo un poco:

Código PHP:
public function asignarPrecioCU($arg){
if(!empty(
$arg)){
$control="0123456789.";
$b=strlen($arg);
for(
$a=0;$a<=$b;$a++){
if(
strpos($control,substr($arg,$a))){
$this->precioCU=$arg;
}
}
}

Gracias.

"Nunca encontraras un pajar en una aguja".
  #9 (permalink)  
Antiguo 26/04/2009, 22:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Consejo

xD Entonces los parametros estan alreves.
  #10 (permalink)  
Antiguo 26/04/2009, 22:58
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Consejo

Buen punto.
Pero entonces no me funcionaria.
Algo de risa...
Algo confuso aún, efectivamente no era ello.

Última edición por JairLizcano; 26/04/2009 a las 23:06
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 15:44.