Foros del Web » Programando para Internet » PHP »

Ayuda sobre la lógica para utilizar en PHP

Estas en el tema de Ayuda sobre la lógica para utilizar en PHP en el foro de PHP en Foros del Web. Hola que tal chicos! Estoy haciendo un sistema para el manejo de oficios, mi pregunta es que la persona encargada lleva una númeración cada año, ...
  #1 (permalink)  
Antiguo 07/11/2012, 08:40
Avatar de AndreaEstrada  
Fecha de Ingreso: noviembre-2012
Ubicación: Torreón
Mensajes: 54
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Ayuda sobre la lógica para utilizar en PHP

Hola que tal chicos! Estoy haciendo un sistema para el manejo de oficios, mi pregunta es que la persona encargada lleva una númeración cada año, es decir, en este año 2012 inicia de 1 hasta que termina el año, y vuelve a empezar númeración en el año 2013.

Solo el problema es que hay oficios que no hará en el sistema y habrá una sección donde la númeración debe avanzar. Ejemplo, el sistema tiene la númeración 50, la persona hace un oficio fuera de el (corresponde el número 51 a ese oficio), pero si hace de nuevo otro oficio en el sistema este debe estar en el 52 (obivamente la persona se lo tiene que decir al sistema).

¿Alguna idea de como programar en PHP esta situación, por que la númeración la controlaré por bases de datos (es decir, el número de oficio es un campo de una bd)?
__________________
"La verdadera clave de la grandeza es ser en verdad lo que aparentamos ser" -Sócrates
  #2 (permalink)  
Antiguo 07/11/2012, 08:43
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: <Ayuda sobre la lógica para utilizar en PHP>

No entendi nada.. pero si vas insertando registros a una base de datos.. no te vale un autoincrement?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 07/11/2012, 08:46
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: <Ayuda sobre la lógica para utilizar en PHP>

por lo ke entiendo hagas el oficio o no la persona debe decircelo al sistema y en ese paso pues ya sabras ke hacer cuando se lo diga sumarle uno y declarar en otro campo ke fue un oficio externo o no se como lo llames para ke tengas esa referencia.

no entendi bien tu problema
  #4 (permalink)  
Antiguo 07/11/2012, 08:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: <Ayuda sobre la lógica para utilizar en PHP>

Trata de exponer lo que quieres hacer de otra forma, es dificil entender 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
  #5 (permalink)  
Antiguo 09/11/2012, 20:03
Avatar de AndreaEstrada  
Fecha de Ingreso: noviembre-2012
Ubicación: Torreón
Mensajes: 54
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: <Ayuda sobre la lógica para utilizar en PHP>

Cita:
Iniciado por rolygc Ver Mensaje
por lo ke entiendo hagas el oficio o no la persona debe decircelo al sistema y en ese paso pues ya sabras ke hacer cuando se lo diga sumarle uno y declarar en otro campo ke fue un oficio externo o no se como lo llames para ke tengas esa referencia.

no entendi bien tu problema
Exactamente, me sirvió mucho tu idea!! Un bss!!
__________________
"La verdadera clave de la grandeza es ser en verdad lo que aparentamos ser" -Sócrates
  #6 (permalink)  
Antiguo 09/11/2012, 20:04
Avatar de AndreaEstrada  
Fecha de Ingreso: noviembre-2012
Ubicación: Torreón
Mensajes: 54
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: <Ayuda sobre la lógica para utilizar en PHP>

Cita:
Iniciado por CoriaWeb Ver Mensaje
No entendi nada.. pero si vas insertando registros a una base de datos.. no te vale un autoincrement?
Lo que pasa es que cada año la numeración de los oficios se tiene que reiniciar, ¿cómo podría reiniciar un autoincrement? y después necesito el año también, ¿sería otro campo? !
__________________
"La verdadera clave de la grandeza es ser en verdad lo que aparentamos ser" -Sócrates
  #7 (permalink)  
Antiguo 09/11/2012, 20:05
Avatar de AndreaEstrada  
Fecha de Ingreso: noviembre-2012
Ubicación: Torreón
Mensajes: 54
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: <Ayuda sobre la lógica para utilizar en PHP>

Cita:
Iniciado por abimaelrc Ver Mensaje
Trata de exponer lo que quieres hacer de otra forma, es dificil entender lo que quieres lograr.
Lo tendré en cuenta, no soy muy buena programadora, y soy nueva!!! Tenganmé paciencia chicos por favor!
__________________
"La verdadera clave de la grandeza es ser en verdad lo que aparentamos ser" -Sócrates
  #8 (permalink)  
Antiguo 10/11/2012, 00:31
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Ayuda sobre la lógica para utilizar en PHP

Pues se me ocurre lo siguiente.. "simular" un autoincrement ;). Es decir.. creas un nuevo campo para la fecha, date si solo quieres la fecha o datetime si la quieres con hora ;), y luego un campo.. por ejemplo... numeracion ("para no complicarnos mucho.. :P "), dicho campo lo empiezas en 1, y cuando vayas a hacer la inserción de algún registro nuevo, pues antes del insert haces una consulta al ultimo registro para sacar el resultado, sumarle 1 y hacer el insert... Me entendiste? :D, creo que es mas difícil explicarlo que hacerlo ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #9 (permalink)  
Antiguo 12/11/2012, 08:37
Avatar de AndreaEstrada  
Fecha de Ingreso: noviembre-2012
Ubicación: Torreón
Mensajes: 54
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Ayuda sobre la lógica para utilizar en PHP

Cita:
Iniciado por CoriaWeb Ver Mensaje
Pues se me ocurre lo siguiente.. "simular" un autoincrement ;). Es decir.. creas un nuevo campo para la fecha, date si solo quieres la fecha o datetime si la quieres con hora ;), y luego un campo.. por ejemplo... numeracion ("para no complicarnos mucho.. :P "), dicho campo lo empiezas en 1, y cuando vayas a hacer la inserción de algún registro nuevo, pues antes del insert haces una consulta al ultimo registro para sacar el resultado, sumarle 1 y hacer el insert... Me entendiste? :D, creo que es mas difícil explicarlo que hacerlo ;)
Justamente estoy procesando tu idea, ya estoy haciendo últimas pruebas para determinar si ya estaríamos en el año siguiente, que es cuando se debe iniciar nuevamente en 1 la numeración de mis oficios! abrazo!
__________________
"La verdadera clave de la grandeza es ser en verdad lo que aparentamos ser" -Sócrates
  #10 (permalink)  
Antiguo 12/11/2012, 11:03
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Ayuda sobre la lógica para utilizar en PHP

Algo asi podria servirte para chequear el año y su valor y determinar el id ke debes insertar.

Código PHP:

/*
* para fecha Format igual a DD-MM-YYYY.
* El usuario inserta la fecha del registro
* y tu la obtines para luego comenzar el chequeo.
*/

$currentRegYear explode('-'$_POST['date_del_formulario']);
$currentRegYear $currentRegYear[2];

// Query
$queryLastYear  mysql_query("SELECT id, DATE_FORMAT(date, '%Y') year 
                               FROM tabla_nombre 
                               ORDER BY date DESC 
                               LIMIT 1"
$conn);

$resultYear     mysql_fetch_assoc($queryLastYear);

if ( 
$resultYear['year'] == $currentRegYear // Si es el mismo año
{
    
/*
    * Creas una funcion para insertar nuevos valores pasandole 
    * el ID como parametro incrementado en 1 cada ves ke sea el mismo Año
    */
    
    
funcionParaInsertarNuevoRegistro( (int) $resultYear['id'] + );
    exit;
}

if ( 
$resultYear['year'] + == $currentRegYear  )// Para el proximo año
{
    
/*
    * Creas una funcion para insertar nuevos valores pasandole 
    * el ID como parametro en este caso es un nuevo año asi ke 
    * comineza el registro en 1 para el nuevo año
    */
    
    
funcionParaInsertarNuevoRegistro);
    exit;

  #11 (permalink)  
Antiguo 16/11/2012, 11:22
Avatar de AndreaEstrada  
Fecha de Ingreso: noviembre-2012
Ubicación: Torreón
Mensajes: 54
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Ayuda sobre la lógica para utilizar en PHP

Cita:
Iniciado por rolygc Ver Mensaje
Algo asi podria servirte para chequear el año y su valor y determinar el id ke debes insertar.

Código PHP:

/*
* para fecha Format igual a DD-MM-YYYY.
* El usuario inserta la fecha del registro
* y tu la obtines para luego comenzar el chequeo.
*/

$currentRegYear explode('-'$_POST['date_del_formulario']);
$currentRegYear $currentRegYear[2];

// Query
$queryLastYear  mysql_query("SELECT id, DATE_FORMAT(date, '%Y') year 
                               FROM tabla_nombre 
                               ORDER BY date DESC 
                               LIMIT 1"
$conn);

$resultYear     mysql_fetch_assoc($queryLastYear);

if ( 
$resultYear['year'] == $currentRegYear // Si es el mismo año
{
    
/*
    * Creas una funcion para insertar nuevos valores pasandole 
    * el ID como parametro incrementado en 1 cada ves ke sea el mismo Año
    */
    
    
funcionParaInsertarNuevoRegistro( (int) $resultYear['id'] + );
    exit;
}

if ( 
$resultYear['year'] + == $currentRegYear  )// Para el proximo año
{
    
/*
    * Creas una funcion para insertar nuevos valores pasandole 
    * el ID como parametro en este caso es un nuevo año asi ke 
    * comineza el registro en 1 para el nuevo año
    */
    
    
funcionParaInsertarNuevoRegistro);
    exit;

Muchas gracias !!! ya retome la programación y funciona como lo requierooooooo !! estaba batallando muchoooo !! bss
__________________
"La verdadera clave de la grandeza es ser en verdad lo que aparentamos ser" -Sócrates
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:49.