Necesito generado automáticamente el número de secuencia mirando desde el 001 SÓLO PARA 3 DÍGITOS en PHP /MYSQL

ex: 001 próximo será 002 y la próxima será 003 … 009 .. 010 ..119..120..etc, pero el número generado debe estar en secuencia sabio no como 001, a continuación, 120 o 008 etc , necesito el número de secuencia.

la verdad es que han de producto sistema de seguimiento . donde tengo mezclador de mis principales de id de producto + auto número de secuencia ( sólo 3 dígitos que se puede cambiar si se quiere ), de ahí mi final de id de producto se convierte en :

111-001 , 111-002 , 111-003 , 111-004 ….etc

Nota: este auto número de secuencia se inserte en mi base de datos mysql ( después de AGREGAR el botón de la siguiente manera por consulta de Actualización ( de ahí mi auto secuencia de entrar en la base de datos con una consulta de Actualización ))

  • algo bucle for
  • ¿por qué no puede usted definir una clave principal compuesta en productId y el número de las que están hablando? Si se puede, no va a ser de tres dígitos, pero la combinación parece 111-1, 111-2, …, 111-101, etc
  • bro no sé, debe ser en bucle o no , como estoy poco a confundir, ya que después de AGREGAR el botón es el fuego de mi auto secuencia se genera ( thats 001) y seguir por mi consulta de Actualización actualizada en mi mesa .. de nuevo al siguiente botón AGREGAR de la consulta es de fuego, luego de este tiempo 002 número es generado y así sucesivamente..
  • ravinder , en realidad es mi requisito del cliente 111-001 , 111-002 .. más de lo que había hecho era que yo estaba tomando último id insertado y 111-1 , 111-2 ,111-4 etc , pero el cliente le dijo que quieren todo en 3 dígitos con el número de secuencia sabio
  • AFAIK no podemos generar automáticamente los números enteros con ceros a la izquierda y no se puede mantener en almacenamiento.
  • Esta respuesta debería ayudarle
  • ravinder gracias , creo que esto es lo que redreggae dijo estar abajo , pero como dije ya han empezado a utilizar mi primaria id a otros archivos como parámetro ( clave externa ) . de ahí ? ahora debo borrar todo y empezar de entrada de nuevo ?

InformationsquelleAutor | 2013-11-29

3 Comentarios

  1. 2

    Añadir la de longitud 3 y zerofill a su columna de id.

    ALTER TABLE  `YOUR_TABLE` CHANGE  
    `id_column`  `id_column` INT( 3 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT
    • ¿y si mi id es la principal columna , como ya he tenido que id como parámetro a otros a.php archivo , y a.php incluye todos este id como clave externa
    • no debería ser un problema. puede consultar SELECT * FROM test WHERE id_test =3 y devuelve el id de 003
    • así zerofill sólo afectará a la pantalla, no a la antigua consultas que usted ya tiene. si se modifica la tabla de la manera en que lo hice, usted puede mantener su antiguo id.
    • ¿qué decir después de la adición de Atributos como «UNSIGNED ZEROFILL» a, identificación principal , y la longitud del valor de 3 , entonces lo que será después 098 , 099 será de 100 o 0100 , si van a ser 100, a continuación, su bien, y si va a ser 0100 entonces ? el uso como solo tengo 3 dígitos
    • será 100 porque la longitud de número entero es de 3.
    • ohh entonces es gr8 déjame comprobar ahora mismo , extraño no he comprobar esto ? sí , porque estoy trabajando en vivo en mi proyecto, por tanto, deben plena confianza en que esta antes de la implementación de cualquier cosa o pruebas de cualquier
    • redreggae , tio una cosa más que se me olvide decir que mi principal identificador de tipo i se han establecido como smallint(6) , por lo que ahora ? que debo hacer para configurar 3
    • smallint es aceptar. un smallint unsigned puede tomar los valores de 0-65535. el valor de la longitud de sólo afecta a la visualización no es la memoria!! tan sólo alteran a smallint(3).
    • GR8 , AHORA TODO PARECE BIEN … gr8 amigo , gracias por sus ahorrar mi tiempo a otra cosa que yo estaba buscando código.. 🙂

  2. 0

    Este debe trabajar para usted con ligeras modificaciones para adaptarse a ur requisito

     <?php
    $connection = mysql_connect("localhost","root","")
    or die("no connection");
    $db_select=mysql_select_db("test",$connection)
    or die("no connection to db");
    $query3 = "SELECT * FROM simple";
    $result3 = mysql_query($query3);
    $count = mysql_num_rows($result3);
    if($count == 0)
    {
    $seq = 1;
    $ref = 111;
    $a = sprintf("%04d", $seq);
    $emp_id = $ref.'-'.$a;
    $query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
    $result=mysql_query($query)or die(mysql_error());
    }
    else
    {
        $query2 = "SELECT * FROM simple ORDER BY id DESC LIMIT 1";
        $result2 = mysql_query($query2);
        $row = mysql_fetch_array($result2);
        $last_id = $row['emp_id'];
        $rest = substr("$last_id", -4);  
        $insert_id = "$rest" + 1;
        echo $ars = sprintf("%04d", $insert_id);
        $ref = 111;
        $emp_id = $ref.'-'.$ars;
        $query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
        $result=mysql_query($query)or die(mysql_error());
    }
    • ¿Por qué te la adición de una constante no definida «E» y el año para el conteo inicial?
    • Praveen , creo que no es lo que quiero , su simple 001 ,002 ,003 número de secuencia con cada uno después de AGREGAR el botón de consulta es despedido
    • He editado el post comprobar ahora
    • por Favor, deje de usar mysql_* functions en el nuevo código, que son oficialmente obsoleto. En lugar de tener una mirada en instrucciones preparadas, y el uso de Mysqli o PDO.
    • Esto es simplemente para dar una idea de ahí que no se centran tanto en el mysql ejecutar instrucciones
    • Incluso, por ejemplo, el uso de al menos mysqli_ funciones, no hace falta más esfuerzos, ni tiempo.

  3. 0

    Prueba este código:

    $maxDigit=5; //maximum digit of ur number
    $currentNumber=0020;  //example this is your last number in database all we need to do is remove the zero before the number . i dont know how to remove it
    $count=strlen($currentNumber); //count the digit of number. example we already removed the zero before the number. the answer here is 2
    $numZero="";
    for($count;$count<=$maxDigit;$count++)
         $numZero=$numZero+"0";
    
    $newNum=$newNum+$currentNumber;

    De salida :00020

Dejar respuesta

Please enter your comment!
Please enter your name here