Foros del Web » Programando para Internet » PHP »

Separar una Variable

Estas en el tema de Separar una Variable en el foro de PHP en Foros del Web. Pues tengo un dato en una base de datos que basicamente es asi: XXXX-Y Donde X es un numero de 4 digitos y Y es ...
  #1 (permalink)  
Antiguo 15/12/2009, 11:01
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Pregunta Separar una Variable

Pues tengo un dato en una base de datos que basicamente es asi:

XXXX-Y

Donde X es un numero de 4 digitos y Y es una letra algo como: (0010-A)

Ahora necesito hacer una instruccion que separe el numero para luego aumentarlo y unirlo es decir neceisto hacer algo como:

$Codigo=$row[1];

// SEPARAR EL NUMERO DEL "-" y de la Letra, para luego

$numero=$numero+1;

y Luego vuelvo a unir para que me el resultado:

Es decir si tengo: 0010-A al aplicar esas instrucciones me devuelva 0011-A

no se si me doy a entender Espero puedan ayudarme Gracias!!!!
  #2 (permalink)  
Antiguo 15/12/2009, 11:05
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Separar una Variable

Usa la funcion explode()

http://php.net/manual/en/function.explode.php

Mirate ahi el ejemplo #1
  #3 (permalink)  
Antiguo 15/12/2009, 11:05
Avatar de kike00  
Fecha de Ingreso: febrero-2005
Ubicación: El Salvador
Mensajes: 180
Antigüedad: 19 años, 9 meses
Puntos: 7
Respuesta: Separar una Variable

utilizando la funcion split

Código PHP:
Ver original
  1. <?php
  2.     $num = 8;
  3.     $row = "45-A";
  4.     $arreglo = split("-", $row);
  5.     $arreglo[0] += $num;
  6.     $cadena_final = $arreglo[0]."-".$arreglo[1];
  7.     echo $cadena_final; //mostraria 53-A
  8. ?>

Última edición por kike00; 15/12/2009 a las 11:11
  #4 (permalink)  
Antiguo 15/12/2009, 11:07
Avatar de gigoz  
Fecha de Ingreso: noviembre-2009
Mensajes: 106
Antigüedad: 15 años
Puntos: 1
Respuesta: Separar una Variable

Prueba con un substr() para sustraer una parte de la linea de la cadena de caracteres.

el primer numero es de donde empiezas y el que esta despues de la coma es la cantidad de caracteres que deseas tomar

$numero =substr($row[1],0,4);
$letra =substr($row[1],6,1);

$numero = $numero+ 1;

$dato = $numero."-".$letra;

Espero que te sirva
  #5 (permalink)  
Antiguo 15/12/2009, 11:19
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Separar una Variable

bueno creo que es buena opcion para usar alguna de las funciones no tan usadas de PHP
te recomiendo esto que acabo de hacer para lo que necesitas :B

Código PHP:
Ver original
  1. $data = "0010-A";
  2. $data = preg_replace_callback('/([0-9]{4})\-([A-Z]{1})/i', create_function('$c','return sprintf("%04d",$c[1]+1)."-".$c[2];'),$data);
  3. echo $data;
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 15/12/2009, 11:19
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: Separar una Variable

Recomiendo la función explode.

$partes = explode("-", $row['loquesea']);

$partes[0] será igual a el numero de 4 dígitos y $partes[1] será la letra.
  #7 (permalink)  
Antiguo 16/12/2009, 07:27
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Separar una Variable

Probare las funciones que tengo aca y vere cual funciona Gracias :) Aviso si funcionan
  #8 (permalink)  
Antiguo 16/12/2009, 09:10
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Separar una Variable

Bueno Tome las sugerencias y funciono asi quedo mi codigo para quien tenga el mismo problema...

Cuento que mi problematica era tomar una boveda 0010-a / 0010-b e incrementear para insertar una nueva que inserte una como a y otra como b:

Código PHP:
Ver original
  1. $BUS=mysql_query("SELECT MAX(BovedaID),MAX(Codigo) FROM bovedas_total_$Tipo where Bloque=$Bloque")or die ('Error '.mysql_errno().': '.mysql_error());
  2. $row=mysql_fetch_row($BUS);
  3.  
  4. $BovedaID=$row[0]+1;
  5. $partes = explode("-", $row[1]);
  6. $partes[0]=$partes[0]+1;
  7. $partes[0]=(str_pad($partes[0],4,"0",STR_PAD_LEFT));
  8. $Codigo=$partes[0]."-A";
  9. $sql=mysql_query("INSERT INTO bovedas_total_$Tipo(BovedaID,Codigo,Tipo,Bloque,Estado,x,y) VALUES ($BovedaID,'$Codigo','$Tipo','$Bloque','DISPONIBLE','0','0')")or die ('Error '.mysql_errno().': '.mysql_error());
  10.  
  11. $BUS=mysql_query("SELECT MAX(BovedaID),MAX(Codigo) FROM bovedas_total_$Tipo where Bloque=$Bloque")or die ('Error '.mysql_errno().': '.mysql_error());
  12. $row=mysql_fetch_row($BUS);
  13. $BovedaID=$row[0]+1;
  14. $Codigo=$partes[0]."-B";
  15. $sql=mysql_query("INSERT INTO bovedas_total_$Tipo(BovedaID,Codigo,Tipo,Bloque,Estado,x,y) VALUES ($BovedaID,'$Codigo','$Tipo','$Bloque','DISPONIBLE','0','0')")or die ('Error '.mysql_errno().': '.mysql_error());

Gracias por su Ayuda Chicos :) Seguire molestando mas tarde :)
  #9 (permalink)  
Antiguo 16/12/2009, 09:12
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Separar una Variable

:O mi solución era mas mejor ToT
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 16/12/2009, 09:20
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Separar una Variable

Si pero me enrede mas que todo era porque si incremento el numero al nuevo numero tengo que isertarle tanto A como B es decir 0011-A y 0011-B por eso :) y me confundi con la tuya :) Pero gracias todas funcionaron :)
  #11 (permalink)  
Antiguo 16/12/2009, 09:39
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Separar una Variable

pero si lo ase :B revisa :P
la función hasta te lava los platos y te cuelga la ropa

:B
__________________
More about me...
~ @rhyudek1
~ Github
  #12 (permalink)  
Antiguo 16/12/2009, 12:26
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Separar una Variable

Jajajaja ya tas pasado :)
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:39.