Foros del Web » Programando para Internet » PHP »

Aumentar un numero consecutivo a una cadena

Estas en el tema de Aumentar un numero consecutivo a una cadena en el foro de PHP en Foros del Web. Hola tengo un problema.Pasa esto que tengo una cedula que se compone de 4 letras y 6 numeros (arme121190). Ya tengo la parte que recibe ...
  #1 (permalink)  
Antiguo 31/01/2013, 17:21
 
Fecha de Ingreso: enero-2013
Mensajes: 27
Antigüedad: 11 años, 9 meses
Puntos: 1
Aumentar un numero consecutivo a una cadena

Hola tengo un problema.Pasa esto que tengo una cedula que se compone de 4 letras y 6 numeros (arme121190). Ya tengo la parte que recibe la cedula de un forlumario a esta lo que quiero hacer es a esta cedula un "/1" y si ya existe esta seria (arme121190/2) y asi consecutivamente.Oala y me ayuden.
  #2 (permalink)  
Antiguo 31/01/2013, 18:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Aumentar un numero consecutivo a una cadena

Podrías indicar ¿cual es el motivo? Tal vez (o lo más probable) existe una forma de hacero mejor, o así se te pueda brindar una idea de lo que quieres lograr.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 01/02/2013, 11:05
 
Fecha de Ingreso: enero-2013
Mensajes: 27
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Aumentar un numero consecutivo a una cadena

Lo que pasa es que registro a un usuario con una cedula (asdf123456), pero si se registra otro usuario con la misma cedula le pregunto si es su familiar si elige que si solo quiero agregarle una "/" mas un numero quedando asi asdf123456/1;si al siguiente registro le sucede lo mismo se registraría con asdf123456/2 y asi consecutivamente.

Tengo la parte donde se inserta el registro pero no sé como aumentarle esa parte de la /1 automaticamente ,me imagino que debe ser con un ciclo pero no lo he conseguido.Solo tengo esta idea que te parece:
<?php>
$conexion = mysql_connect("localhost", "root", "12345");
if (!$conexion) {
die("Fallo la conexión a la Base de Datos: " . mysql_error());
}
$seleccionar_bd = mysql_select_db("asd", $conexion);
if (!$seleccionar_bd) {
die("Fallo la selección de la Base de Datos: " . mysql_error());
}
$ced = strtoupper($_POST['ced']);
$tip = strtoupper($_POST['tip']);
$nom = strtoupper($_POST['nom']);
$ap = strtoupper($_POST['ap']);
$am = strtoupper($_POST['am']);

//esta es la parte que no se como hacerla

$cedfam=$ced;
$cont = explode( '/',$cedfam);

for ( $i = 1 ; $i <= $cont ; $i ++) {
print $i ;
}

$cedfinal=$cedfam.$i;


$insertar = mysql_query("INSERT INTO `asd`.`exp` (`ced`, `tip`, `nom`, `ap`, `am`)
VALUES ('{$cedfinal}', '{$tip}', '{$nom}', '{$ap}')", $conexion);
?>
  #4 (permalink)  
Antiguo 01/02/2013, 11:29
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: Aumentar un numero consecutivo a una cadena

hola, te voy a indicar mas o menos como seria

registraste el primer cliente con la cedula asdf123456
llego el segundo, cierto , es una familiar

lo primero verificas si en la base de datos ya hay un cliente con la cedula asdf123456

Código MySQL:
Ver original
  1. SELECT * FROM clientes WHERE cedula LIKE 'asdf123456%  LIMIT 0,1 ORDER BY cedula DESC'

La consulta retorna el ultimo registro con esa cedula

si existe el cliente entonces a la cedula la concatenas con /1 cierto , deberia quedar asdf123456/1, registras el cliente hasta ahi perfecto.

llego un tercer cliente familia , entonces vuelves y haces el mismo proceso de validar si ya hay un cliente con la cedula
asdf123456 , obviamente sabemos que si, que hay ya dos registros , la cedula asdf123456 y la cedula asdf123456/1
, la consulta anterior te traeria el ultimo registro seria el asdf123456/1

finalmente coges ese registro y lo separas por el / es decir:

Código PHP:
Ver original
  1. $consecutivo_actual = "asdf123456/1";
  2. $separador = explode("/",$consecutivo_actual);
  3. $consecutivo = $separador[0]; // esto va a ser igual a asdf123456
  4. $numero_actual = $separador[1]; // esto va a ser igual al 1  
  5. $incremento = $numero_actual + 1; // simplemente incrementas en 1
  6. $consecutivo_final = $consecutivo."".$incremento;// resultado igual a asdf123456/2


Bueno , no estoy 100% seguro si te funcione, pero igual es una idea para que la plantees en lo que necesitas.
  #5 (permalink)  
Antiguo 01/02/2013, 11:47
 
Fecha de Ingreso: enero-2013
Mensajes: 27
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Aumentar un numero consecutivo a una cadena

Me funciono muy bien ,muchas gracias por el tiempo y la ayuda .

Etiquetas: aumentar, cadena, consecutivo, 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 10:50.