FAQ
Buenas a todos de la lista,
esta vez les comento que tengo la tarea de mostrar datos de personas que
no han pagado. No es que me guste mucho, pero bueno:

Resulta que necesito generar un script que me introduzca en la base de
datos personas con numeros de identificacion como 097732. Aqui el numero
se compone de el ano en dos cifras(09) y de una cantidad indefinida de
numeros detras de ellas. Por lo que he podido ver son de cuatro cifras.
Ahora lo que hay que hacer es generar nuevas personas morosas. Es decir
tengo que preguntar al mysql el ultimo de la lista (ya lo tengo hecho) y
generar un numero como el siguiente: 097733. Como ven no es muy trivial
ya que me resolveria la papeleta si los numeros detras del 09 comenzaran
siempre en un numero. La cuestion es que estamos por 090014. Es decir el
numero que me quedaria despues es 0015.

Tiene alguien alguna solucion que me pueda dar porfa? o por lo menos me
pueda guiar en donde mirar? ;-) no crean que no he buscado en php.net
pero no lo encuentro :-D

Saludos

Carlos Medina

Search Discussions

  • Mariano Guezuraga at Jan 7, 2009 at 4:01 pm
    El día 7 de enero de 2009 13:34, Carlos Medina
    <info@simply-networks.de> escribió:
    Buenas a todos de la lista,
    esta vez les comento que tengo la tarea de mostrar datos de personas que no
    han pagado. No es que me guste mucho, pero bueno:

    Resulta que necesito generar un script que me introduzca en la base de datos
    personas con numeros de identificacion como 097732. Aqui el numero se
    compone de el ano en dos cifras(09) y de una cantidad indefinida de numeros
    detras de ellas. Por lo que he podido ver son de cuatro cifras. Ahora lo que
    hay que hacer es generar nuevas personas morosas. Es decir tengo que
    preguntar al mysql el ultimo de la lista (ya lo tengo hecho) y generar un
    numero como el siguiente: 097733. Como ven no es muy trivial ya que me
    resolveria la papeleta si los numeros detras del 09 comenzaran siempre en un
    numero. La cuestion es que estamos por 090014. Es decir el numero que me
    quedaria despues es 0015.

    Tiene alguien alguna solucion que me pueda dar porfa? o por lo menos me
    pueda guiar en donde mirar? ;-) no crean que no he buscado en php.net pero
    no lo encuentro :-D

    Saludos

    Carlos Medina
    Por lo que entendí de la redacción (que no es mucho), me suena a
    http://ar2.php.net/sprintf
  • Floydiano at Jan 7, 2009 at 4:12 pm
    ok, lo que entendi es que teniendo los dos digitos del año, necesitas que el
    numero se complete con 4 caracteres mas que serian un numero pero completo
    de ceros a la izquierda del mismo.
    esto se podria hacer de la siguiente forma.

    <?php
    $año = '09' ; ' Año en dos digitos
    $numero = '123'; ' numero obtenido del SQL
    $numerofinal = $año.str_pad($numero,4,'0',STR_PAD_LEFT);
    echo $numerofinal;
    echo "</br>";
    $numero = '12'; ' otro numero obtenido de SQL
    $numerofinal = $año.str_pad($numero2,4,'0',STR_PAD_LEFT);
    echo $numerofinal;
    ?>

    espero te sirva
  • Juan Manuel Acuña Barrera at Jan 7, 2009 at 4:15 pm

    Inicio del mensaje reenviado:

    De: Carlos Medina <info@simply-networks.de>
    Fecha: 7 de enero de 2009 09:34:06 a.m. GMT-06:00
    Para: php-es@lists.php.net
    Asunto: [PHP-ES] Formatear un numero difícil
    Responder a: info@simply-networks.de

    Buenas a todos de la lista,
    esta vez les comento que tengo la tarea de mostrar datos de personas
    que no han pagado. No es que me guste mucho, pero bueno:

    Resulta que necesito generar un script que me introduzca en la base
    de datos personas con numeros de identificacion como 097732. Aqui el
    numero se compone de el ano en dos cifras(09) y de una cantidad
    indefinida de numeros detras de ellas. Por lo que he podido ver son
    de cuatro cifras. Ahora lo que hay que hacer es generar nuevas
    personas morosas. Es decir tengo que preguntar al mysql el ultimo de
    la lista (ya lo tengo hecho) y generar un numero como el siguiente:
    097733. Como ven no es muy trivial ya que me resolveria la papeleta
    si los numeros detras del 09 comenzaran siempre en un numero. La
    cuestion es que estamos por 090014. Es decir el numero que me
    quedaria despues es 0015.

    Tiene alguien alguna solucion que me pueda dar porfa? o por lo menos
    me pueda guiar en donde mirar? ;-) no crean que no he buscado en
    php.net pero no lo encuentro :-D

    Saludos

    Carlos Medina

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

    No estoy muy seguro si es a lo que te refieres, pero puedes probar esto:
    <?php

    $prefijo='09';
    $variable='0014';
    $nuevaVariable=str_pad($variable+1, 4, "0", STR_PAD_LEFT);

    echo "variable: $variable <br>";
    echo "nuevaVariable: $nuevaVariable <br>";
    echo "<br><br>";
    echo "numero anterior: " . $prefijo . $variable . "<br>";
    echo "nuevo numero: " . $prefijo . $nuevaVariable . "<br>";


    ?>

    Espero que te sirva. Ojalá nos puedas avisar como te va con esto, ok?

    Suerte!

    Juan Manuel Acuña.
  • Death Herald at Jan 7, 2009 at 5:53 pm
    Buenas.

    ¿No os resultaría más sencillo tirar de un sencillo "id", que se almacenara
    como la mayoría de estos registros (auto_increment, para distinguirlos), y
    luego actualizar su saldo pendiente, fecha de último contacto o pago,
    etcétera?

    Por lo que cuentas, parece que se trata de un programa destinado a lo que en
    algunos bancos se llama "Recobro". La fecha de morosidad podrías almacenar
    con un simple TIME, y creo que sería menos lioso rescatar por SQL sus
    informes.

    A mi me parece mucho más sencillo hacerlo de esta forma, pero lo mismo hay
    algo en lo que no caigo. Pero, salvo que nos digas algo más, me parece más
    fácil (e incluso rápido) almacenarlos por un id generado por auto_increment,
    rescatar los datos por TIME y tirar de UPDATE para actualizar saldo
    pendiente, fecha de morosidad (si es necesario, no siempre lo es), etcétera.

    Sacar el listado es sencillo, te valdría con hacer una consulta con la
    condición WHERE saldo_pendiente > 0. Lo mismo me dejo algo.

    Si resulta que lo tienes que hacer por fuerza creando el código de
    identificación de cada persona con ese método, que a mi me sigue pareciendo
    algo lioso, parece que dicho código siempre empieza con los seis caracteres
    dedicados a la fecha.

    Utiliza strlen, y crea una variable nueva extirpando los caracteres
    correspondientes a la fecha y filtrando los ceros. Pásalo a un valor entero
    con intval, y calcula el número siguiente a partir de ahí. Aunque tengas que
    analizar los caracteres uno por uno, debería funcionar. Si los dos primeros
    caracteres son ceros, te valdrá con añadirlos después.

    Saber cuantos ceros añadir no debería ser problema, porque el número que
    generaras te lo pondría fácil. Si pasas ese mismo número por un strlen, el
    número de caracteres devueltos te dirá si es de 1, 2, 3 o 4 cifras. Ese te
    daría el número de ceros a introducir entre la fecha y el número que buscas.

    Espero no haberlo liado demasiado. Intentaré llevarme el mail a casa (no
    tengo conexión casera, me conecto desde un ciber), e intentar traerte algo
    de código que lo explique mejor.

    Un saludo.



    2009/1/7 Juan Manuel Acuña Barrera <gps1mx@gmail.com>
    Inicio del mensaje reenviado:

    De: Carlos Medina <info@simply-networks.de>
    Fecha: 7 de enero de 2009 09:34:06 a.m. GMT-06:00
    Para: php-es@lists.php.net
    Asunto: [PHP-ES] Formatear un numero difícil
    Responder a: info@simply-networks.de


    Buenas a todos de la lista,
    esta vez les comento que tengo la tarea de mostrar datos de personas que
    no han pagado. No es que me guste mucho, pero bueno:

    Resulta que necesito generar un script que me introduzca en la base de
    datos personas con numeros de identificacion como 097732. Aqui el numero se
    compone de el ano en dos cifras(09) y de una cantidad indefinida de numeros
    detras de ellas. Por lo que he podido ver son de cuatro cifras. Ahora lo que
    hay que hacer es generar nuevas personas morosas. Es decir tengo que
    preguntar al mysql el ultimo de la lista (ya lo tengo hecho) y generar un
    numero como el siguiente: 097733. Como ven no es muy trivial ya que me
    resolveria la papeleta si los numeros detras del 09 comenzaran siempre en un
    numero. La cuestion es que estamos por 090014. Es decir el numero que me
    quedaria despues es 0015.

    Tiene alguien alguna solucion que me pueda dar porfa? o por lo menos me
    pueda guiar en donde mirar? ;-) no crean que no he buscado en php.netpero no lo encuentro :-D

    Saludos

    Carlos Medina

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
    No estoy muy seguro si es a lo que te refieres, pero puedes probar esto:
    <?php

    $prefijo='09';
    $variable='0014';
    $nuevaVariable=str_pad($variable+1, 4, "0", STR_PAD_LEFT);

    echo "variable: $variable <br>";
    echo "nuevaVariable: $nuevaVariable <br>";
    echo "<br><br>";
    echo "numero anterior: " . $prefijo . $variable . "<br>";
    echo "nuevo numero: " . $prefijo . $nuevaVariable . "<br>";


    ?>

    Espero que te sirva. Ojalá nos puedas avisar como te va con esto, ok?

    Suerte!

    Juan Manuel Acuña.
  • Carlos Medina at Jan 7, 2009 at 6:12 pm

    Death Herald schrieb:
    Buenas.

    ¿No os resultaría más sencillo tirar de un sencillo "id", que se almacenara
    como la mayoría de estos registros (auto_increment, para distinguirlos), y
    luego actualizar su saldo pendiente, fecha de último contacto o pago,
    etcétera?

    Por lo que cuentas, parece que se trata de un programa destinado a lo que en
    algunos bancos se llama "Recobro". La fecha de morosidad podrías almacenar
    con un simple TIME, y creo que sería menos lioso rescatar por SQL sus
    informes.

    A mi me parece mucho más sencillo hacerlo de esta forma, pero lo mismo hay
    algo en lo que no caigo. Pero, salvo que nos digas algo más, me parece más
    fácil (e incluso rápido) almacenarlos por un id generado por auto_increment,
    rescatar los datos por TIME y tirar de UPDATE para actualizar saldo
    pendiente, fecha de morosidad (si es necesario, no siempre lo es), etcétera.

    Sacar el listado es sencillo, te valdría con hacer una consulta con la
    condición WHERE saldo_pendiente > 0. Lo mismo me dejo algo.

    Si resulta que lo tienes que hacer por fuerza creando el código de
    identificación de cada persona con ese método, que a mi me sigue pareciendo
    algo lioso, parece que dicho código siempre empieza con los seis caracteres
    dedicados a la fecha.

    Utiliza strlen, y crea una variable nueva extirpando los caracteres
    correspondientes a la fecha y filtrando los ceros. Pásalo a un valor entero
    con intval, y calcula el número siguiente a partir de ahí. Aunque tengas que
    analizar los caracteres uno por uno, debería funcionar. Si los dos primeros
    caracteres son ceros, te valdrá con añadirlos después.

    Saber cuantos ceros añadir no debería ser problema, porque el número que
    generaras te lo pondría fácil. Si pasas ese mismo número por un strlen, el
    número de caracteres devueltos te dirá si es de 1, 2, 3 o 4 cifras. Ese te
    daría el número de ceros a introducir entre la fecha y el número que buscas.

    Espero no haberlo liado demasiado. Intentaré llevarme el mail a casa (no
    tengo conexión casera, me conecto desde un ciber), e intentar traerte algo
    de código que lo explique mejor.

    Un saludo.



    2009/1/7 Juan Manuel Acuña Barrera <gps1mx@gmail.com>
    Inicio del mensaje reenviado:

    De: Carlos Medina <info@simply-networks.de>
    Fecha: 7 de enero de 2009 09:34:06 a.m. GMT-06:00
    Para: php-es@lists.php.net
    Asunto: [PHP-ES] Formatear un numero difícil
    Responder a: info@simply-networks.de


    Buenas a todos de la lista,
    esta vez les comento que tengo la tarea de mostrar datos de personas que
    no han pagado. No es que me guste mucho, pero bueno:

    Resulta que necesito generar un script que me introduzca en la base de
    datos personas con numeros de identificacion como 097732. Aqui el numero se
    compone de el ano en dos cifras(09) y de una cantidad indefinida de numeros
    detras de ellas. Por lo que he podido ver son de cuatro cifras. Ahora lo que
    hay que hacer es generar nuevas personas morosas. Es decir tengo que
    preguntar al mysql el ultimo de la lista (ya lo tengo hecho) y generar un
    numero como el siguiente: 097733. Como ven no es muy trivial ya que me
    resolveria la papeleta si los numeros detras del 09 comenzaran siempre en un
    numero. La cuestion es que estamos por 090014. Es decir el numero que me
    quedaria despues es 0015.

    Tiene alguien alguna solucion que me pueda dar porfa? o por lo menos me
    pueda guiar en donde mirar? ;-) no crean que no he buscado en php.netpero no lo encuentro :-D

    Saludos

    Carlos Medina

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
    No estoy muy seguro si es a lo que te refieres, pero puedes probar esto:
    <?php

    $prefijo='09';
    $variable='0014';
    $nuevaVariable=str_pad($variable+1, 4, "0", STR_PAD_LEFT);

    echo "variable: $variable <br>";
    echo "nuevaVariable: $nuevaVariable <br>";
    echo "<br><br>";
    echo "numero anterior: " . $prefijo . $variable . "<br>";
    echo "nuevo numero: " . $prefijo . $nuevaVariable . "<br>";


    ?>

    Espero que te sirva. Ojalá nos puedas avisar como te va con esto, ok?

    Suerte!

    Juan Manuel Acuña.
    Gracias Herald,
    tomare en cuenta tus acotaciones en donde pueda. Problema es que el
    codigo ya esta hecho y la base tiene 322 tables que no quiero mover ni
    por nada del mundo :-D.

    La Solucion de Juan Manuel y Floydiano creo que ira bien (ahora la
    conseguí en PHP.NET :-)

    Gracias a todos

    Saludos

    Carlos Medina

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedJan 7, '09 at 3:34p
activeJan 7, '09 at 6:12p
posts6
users5
websitephp.net

People

Translate

site design / logo © 2022 Grokbase