Foros del Web » Programando para Internet » PHP »

funcion substr... xq me pasa esto?!!

Estas en el tema de funcion substr... xq me pasa esto?!! en el foro de PHP en Foros del Web. Bueno, yo tengo en una pagina un campo, con numeros, 01,02,03.... como mucho llega a 05 Mando eso por post a otra pagina En la ...
  #1 (permalink)  
Antiguo 14/06/2006, 16:54
Avatar de kokecola2k2  
Fecha de Ingreso: febrero-2004
Mensajes: 130
Antigüedad: 20 años, 1 mes
Puntos: 0
funcion substr... xq me pasa esto?!!

Bueno, yo tengo en una pagina un campo, con numeros, 01,02,03....
como mucho llega a 05

Mando eso por post a otra pagina

En la otra pagina hago ifs.... de esta menera

if ($_POST[contador]== 1){
$asiento1=$_POST[asientos];
}
elseif ($_POST[contador] == 2){
$asiento1=substr($_POST[asientos],0,2);
$asiento2=substr($_POST[asientos],3,5); }

elseif ($_POST[contador] == 3){
$asiento1=substr($_POST[asientos],0,2);
$asiento2=substr($_POST[asientos],3,5);
$asiento3=substr($_POST[asientos],6,8);


}

Lo que quiero es separar los numeros, obtener
01
02
03
04
05

el contador es el nº de numeros que tengo (01,02 serian 2 numeros...)

Entonces, si tengo 1 numero, pues eso es lo que vale
Si tengo 2 numeros, los separo, cojo los 2 primeros, y luego los otros 2...
El problema viene aqui:

Si son 3 numeros, me sale:
01
02,03
03
.... tal como tengo puesto, me tendria que salir
01
02
03
no?
con los dos casos siguientes me pasa igual... a que se debe??
__________________
Gracias a los que me ayudaron, y a los que me ayudarán
  #2 (permalink)  
Antiguo 14/06/2006, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
tu problema es el uso jejeje, la funcion substr es asi:
Código:
$newtexto = substr( $texto, INICIO, CANTIDAD );
// no:
$newtexto = substr( $texto, INICIO, FINAL );
jejej, asi que siempre debes usar 2 para la cantidad de caracteres que quieras ;)
  #3 (permalink)  
Antiguo 14/06/2006, 17:54
Avatar de kokecola2k2  
Fecha de Ingreso: febrero-2004
Mensajes: 130
Antigüedad: 20 años, 1 mes
Puntos: 0
aaah, así si :D

asiasssss
__________________
Gracias a los que me ayudaron, y a los que me ayudarán
  #4 (permalink)  
Antiguo 14/06/2006, 19:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por kokecola2k2
En la otra pagina hago ifs.... de esta menera

if ($_POST[contador]== 1){
$asiento1=$_POST[asientos];
}
elseif ($_POST[contador] == 2){
$asiento1=substr($_POST[asientos],0,2);
$asiento2=substr($_POST[asientos],3,5); }

elseif ($_POST[contador] == 3){
$asiento1=substr($_POST[asientos],0,2);
$asiento2=substr($_POST[asientos],3,5);
$asiento3=substr($_POST[asientos],6,8);

}
Todo bien, pero con fines netamente practicos es mejor usar la funcion switch() en vez de un serie de if's y elseif's que de hecho van a llegar a confundir y distorcionar el codigo cuando son muchos...

La parte del codigo que cito seria asi con el uso de switch:

Código PHP:
 switch ($_POST['contador']){
case 
1:
$asiento1=$_POST['asientos'];
break;
case 
2:
$asiento1=substr($_POST['asientos'],0,2);
$asiento2=substr($_POST['asientos'],3,5);   }
 break;
case 
3:
$asiento1=substr($_POST['asientos'],0,2);
$asiento2=substr($_POST['asientos'],3,5);
$asiento3=substr($_POST['asientos'],6,8);
  break;

Ademas, fijate que añadi las comillas a las variables $_POST... La forma correcta es con comillas, ya que el poner $_POST[campo], campo hace en realidad referencia a una constante, y no a una variable... Si no esta definida , pues se tomara literalmente, pero si esta definida, tomara el valor de la constante...

Para que veas a lo que me refiero, intenta colocar esto antes de los if's que te cite, cuando no hay comillas:

Código PHP:
define('asientos','otracosa'); 
Veras que tu script deja de funcionar...

Salu2
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 04:52.