Foros del Web » Programando para Internet » PHP »

Ayuda por favor!!!

Estas en el tema de Ayuda por favor!!! en el foro de PHP en Foros del Web. Hola a todos Necesito de su ayuda por favor Tengo el siguiente valor de un campo llamado 'FOLIO' STD-20070101-X STD es el identificador que ocupo ...
  #1 (permalink)  
Antiguo 10/09/2007, 10:51
 
Fecha de Ingreso: septiembre-2006
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 1
Ayuda por favor!!!

Hola a todos

Necesito de su ayuda por favor

Tengo el siguiente valor de un campo llamado 'FOLIO'

STD-20070101-X

STD es el identificador que ocupo el cual puede variar dependiendo del proyecto
20070101 es la fecha actual, la cual la obtengo mediante la funcion date()
X es un valor numerico el cual se va a ir incrementando dependiendo del valor de otro campo llamado STATUS

'FOLIO' esta declarado en la base de datos (MySQL) como VARCHAR
'STATUS' unicamente recibe 2 valores 'MIGRADO' y 'NO MIGRADO' y cuando es 'NO MIGRADO' se tiene que generar el folio

Ahora, aqui viene mi duda.....

Suponiendo que tengo el primer registro con STD-20070101-1 y el campo de STATUS es 'NO MIGRADO'

Como le hago para descomponer el registro/valor/campo, sacar el numero 1 convertirlo a valor y sumarle una unidad para el siguiente registro que me aparezca 'NO MIGRADO' en STATUS?

Actualmente tengo el campo con la siguiente funcion, pero asi me da el ultimo valor despues de la fecha como aleatorio, pero necesito que sea consecutivo. empezando desde 1 hasta el infinito

Código PHP:
$i=rand(); // <--- este valor necesito que sea consecutivo, no aleatorio
$status $_POST['status'];
if (
$status == "MIGRADO"){
  
$folio ""//no envia nada, campo null
}else{
  
$folio "STD-".date('Ymd')."-"."$i";



Gracias de antemano a todos por su atencion.
  #2 (permalink)  
Antiguo 10/09/2007, 10:58
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
Re: Ayuda por favor!!!

Puedes usar explode, para separar tu folio, solo pasa el parámetro de separación un "-" y con eso tendrías el folio separado.

Posteriormente puedes accesar a cada parte de tu folio usando indices ej: $folio[2] tendría el ultimo numero.

Saludos.
  #3 (permalink)  
Antiguo 10/09/2007, 14:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Ayuda por favor!!!

Gracias GatorV

Desafortunadamente no me funciono explode(), pero encontre otra funcion que me funciono a la perfeccion

Dejo mi codigo para quien lo pueda requerir.

Saludos

Código PHP:
$status $_POST['status'];
if (
$status == "MIGRADO"){
  
$folio "";
}else{
   
$folio=mysql_query("SELECT MAX(`ticket`) FROM `cjr` WHERE status != ''",$link); //checamos que sea el primer registro
   
if ($folio == ''){   
       
$folio "STD-".date('Ymd')."-"."1"//asignamos el primer valor
   
}else{
     
$folio=mysql_query("SELECT MAX(`ticket`) FROM `cjr` WHERE status != 'MIGRADO'",$link); //checamos que exista un registro anterior
     
$folios=mysql_result($foliostatus); //guardamos el resultado del query
     
$temp substr("$folios",13,5); //obtenemos los ultimos caracteres
     
$temp=$temp+1//le sumamos uno
     
$fl "STD-".date('Ymd')."-"."$temp"//lo ponemos en la variable.

     
}

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 14:44.