Foros del Web » Programando para Internet » PHP »

sugerencia para crear id en php

Estas en el tema de sugerencia para crear id en php en el foro de PHP en Foros del Web. que tal a todos, alguien podria ayudarme a sugerirme como crear un id autonumerico? Pero tengo una condicion, de que el id se reinicie en ...
  #1 (permalink)  
Antiguo 27/01/2010, 17:32
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
sugerencia para crear id en php

que tal a todos, alguien podria ayudarme a sugerirme como crear un id autonumerico?

Pero tengo una condicion, de que el id se reinicie en 0 cuando sea otro dia, osea que cada dia ese id se reinicie en 1 porque mi formato de id para el sistema es

dd-mm-aa-id

donde el id es el que debe de empezar en 1 cada vez que haya transcurrido un dia
pero que el ultimo digito empiece en "01" y asi consecutivamente, saludos
  #2 (permalink)  
Antiguo 27/01/2010, 17:51
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: sugerencia para crear id en php

¿Es el id de una tabla de base de datos? ¿Por qué quieres hacer eso... no es más fácil tener un campo id autoincrementable y otro fecha y que ambos sean índices? ¡Suerte!
  #3 (permalink)  
Antiguo 27/01/2010, 18:12
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sugerencia para crear id en php

no, es que asi quieren manejar el formato del folio de lo que se vendio, el id no lo jalo de ningun lado, eso nada mas lo inserto en mi tabla donde llevo mi consecutivo ahi tengo pues el id obligatorio por tabla, pero pues ocupo para esto un ultimo numero de 2 digitos
  #4 (permalink)  
Antiguo 27/01/2010, 18:19
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: sugerencia para crear id en php

mysql te permite tener dos índices. Puedes simplemente tener dos campos, uno con la fecha y otro con el numero de venta del día e ir incrementando el número en una tabla de control diario.
  #5 (permalink)  
Antiguo 27/01/2010, 23:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sugerencia para crear id en php

si te entiendo pero estoy haciendolo como pide el cliente su mascara de entrada del folio debe de ser asi

ddmmaaid

dd= dia en 2 digitos
mm=mes
aa=año en 2 digitos
id= el consecutivo numerico donde cada vez que haya pasado un dia, se reinicie el valor en 1

existe manera de reiniciar el valor que te da mysql_insert_id en 1 cuando yo se lo indique?

alguna otra sugerencia?
  #6 (permalink)  
Antiguo 28/01/2010, 00:06
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 125
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: sugerencia para crear id en php

sugerencia:
Hacer una tabla por cada dia,ahi tendras el id como quieres.(llamadas ddmmaa)
el problema en un año 365 tablas.y problemas para hacer busquedas.

Yo lo que haria un campo numerico donde antes de ingresar un registro cuentes cuantos ingresos se hicieron en el dia de hoy a eso le sumas 1.y le agregas el ddmmaa.Tambien tendrias que tener un campo date para poder contar los insert del dia.


Otra forma si no es necesario el campo ddmmaaid se puede deducir
miras cuantos registros se hicieron el dia ddmmaa el primer resultado es el id=1 y asi sucesivamente (la busqueda debe ser por id ascendente)
__________________
alquiler gesell

Última edición por acknowledge; 28/01/2010 a las 00:12
  #7 (permalink)  
Antiguo 28/01/2010, 00:46
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: sugerencia para crear id en php

Yo usaría una tabla con un id autoincrementable y una fecha date donde ambos sean índices de la tablas. Si el cliente quiere obtener un número código que aún no entendí bien, entonces lo calculas y se lo das. Pero que no sea un campo más de la tabla... el cliente puede decirte otras cosas, meterse en el diseño de la estructura de datos es impertinente (es como que en el quirófano un paciente le diga al cirujano cómo debe operarlo; mentira, nada que ver, pero se entendió la idea). ¡Suerte!
  #8 (permalink)  
Antiguo 28/01/2010, 02:49
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: sugerencia para crear id en php

Yo lo hago de la siguiente manera, por un lado obtengo el dia actual, y por el otro, el último día de la base de datos. Luego comparas y haces lo que debas:

Código PHP:
$dia_actual date("d");

$consulta mysql_query("SELECT DATE_FORMAT(FECHA,'%d') AS DIA FROM tabla1 WHERE CONDICIONES ORDER BY FECHA DESC LIMIT 0,1";

$ultimo_dia mysql_result($consulta,0);

if(
$dia_actual != $ultimo_dia){
//LO QUE SEA
}else{
//LO QUE SEA

Espero que te sirva, un abrazo!
  #9 (permalink)  
Antiguo 28/01/2010, 11:07
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sugerencia para crear id en php

que tal, mira si le hice como me comentaste de que el digito sea numerico y se incremente cada vez que se genera un nuevo folio y que cada dia que pase se reinicie en 0 pero tengo un problema, el id que lo guardo en una tabla para llevar control de eso mi tabla se llama "control_folio" que se compone pues de su llave primaria y el campo "digito" que es el ultimo de mi mascara de entrada donde se guarda cada vez que se guarda un folio para asi obtener cual fue mi ultimo e incrementarlo de esta manera

Código PHP:
$dig "SELECT * FROM control_folio ORDER BY digito DESC LIMIT 1 , 1";
    
$dig1=mysql_query($dig) or die("Error al buscar el digito de folio: ".mysql_error());
    while(
$dig2 mysql_fetch_array($dig1))
    {
        
$digito $dig2['digito'];
        
$digito $digito 1;
    } 
donde ahi se incrementa y donde hago la comparacion para que si es un dia nuevo se reinicie en 0, toma la fecha anterior y compara si es menor a la de hoy reinicia la variable en 1

Código PHP:
if($digito == 0)
        
$digito 1;
        
    
$dia explode(" ",$dia,2);
    
$dia $dia[0];
    
    
$fecha_actual=date("Y-m-d");
    if(
$dia $fecha_actual)
    {
        echo 
"entro".$dia;
        
$digito 1;
    } 
una vez finalizado esto lo que hace concatena todo en el numero de folio de esta manera

Código PHP:
if($digito 10)
    {
        
$digito "0".$digito;//inserta un 0 si el digito es menor a 9
    
}

    
$insertar "INSERT INTO control_folio (id,digito) values ('','".$digito."')";//inserta el digito en la tabla para el control
    
$insertar1=mysql_query($insertar)or die("Error al insertar digito de folio: ".mysql_error());
    
$num_reservacion=$dd.$mm.$yy.$digito
DONDE EL PROBLEMA QUE SE ME PRESENTA ES QUE HASTA QUE SE INSERTE 2 VECES UN REGISTRO AUMENTA DE VALOR EL FOLIO MAS APARTE SI LA VARIABLE SE REINICIA EN 01, SI LO INSERTA ESE REGISTRO PERO PARA EL SIGUIENTE REGISTRO TOMA EL VALOR ANTERIOR DE 01, LO RETOMA Y LO INCREMENTA

Etiquetas: sugerencia
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 00:19.