PHP - consecutivo php y mysql

   
Vista:

consecutivo php y mysql

Publicado por luis (23 intervenciones) el 05/12/2018 15:20:43
Buen día tengo una tabla en mysql llamada "def_consecutivo"

en la que hay un campo id:

iddef_consecutivo | desde | hasta | contador

el id es un campo para identificar rangos

desde es para el inicio del rango de numeros

hasta para el fin del rango

contador para el contador de datos que debe incrementarse


quiero hacer una funcion en php que me ayude a ver e insertar el siguiente consecutivo en el campo si el dato agregado esta dentro del rango correspondiente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

consecutivo php y mysql

Publicado por Javier (25 intervenciones) el 05/12/2018 21:55:38
Hola Luis!
Sería algo así? Usando sentencias preparadas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function AddContador( $iddef_consecutivo ) {
   $link=conectarBD() ;
 
   $sentencia = $link->prepare("SELECT contador, desde, hasta FROM def_consecutivo WHERE iddef_consecutivo = ? " );
   $sentencia->bind_param("i", $iddef_consecutivo ); //vincula los parámetros con la sentencia (el simbolo ?).
   $sentencia->execute(); // ejecuta la sentencia preparada.
   $sentencia->store_result(); // almacena los resultados de la consulta
   $sentencia->bind_result( $contador,$desde,$hasta); // vincula los resultados con las variables.
   $numfilas=$sentencia->num_rows; // si $numfilas >0 significa que el SELECT anterior  encontro registros.
 
   if ( $numfilas > 0 ) {
      $contador++ ;
      if ($contador>=$desde && $contador<=$hasta) {
         $sentencia = $link->prepare("UPDATE def_consecutivo SET contador =?  WHERE iddef_consecutivo = ? " );
         $sentencia->bind_param("ii", $contador,$iddef_consecutivo );
         $sentencia->execute();
         $numfilas=$sentencia->num_rows; // si $numfilas >0 significa que el UPDATE anterior actualizó mas de 1 registro.
 
         if ( $numfilas > 0 ) {
            // actualizacion correcta
          } else {
            // error en update
          }
      }
   } else {
      // no existe $iddef_consecutivo
   }
 
   $sentencia-> free_result();
   $sentencia->close();
   $link->close();
} // fin funcion

Probablemente puedas optimazar las sentencias SQL con LIMIT 1, ya que el id es unico.

Saludos.
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

consecutivo php y mysql

Publicado por luis (23 intervenciones) el 05/12/2018 22:15:56
Gracias por tu respuesta,

No me habían explicado bien el asunto. pido una disculpa

lo que hay que hacer es que cuando se agregue un cliente el una tabla llamada def_cliente en el cual se le asigna un numero que corresponde al rango dentro de la tabla def_consecutivo el contador aumente ya que el contador se refiere al numero de clientes que existen dentro de ese rango
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consecutivo php y mysql

Publicado por luis (23 intervenciones) el 06/12/2018 15:55:58
creo que hace falta agregar la parte en la que se agrega el cliente y el contador aumenta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consecutivo php y mysql

Publicado por Javier (25 intervenciones) el 06/12/2018 21:15:38
Hola Luis, necesitas lo de "agregar la parte en la que se agrega el cliente y el contador aumenta...". ?
O solo fue un pensamiento en voz alta? :)
Avisa nomas.

Saludos
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consecutivo php y mysql

Publicado por luis (23 intervenciones) el 06/12/2018 21:32:44
Ha si me referia a que me hacia falta resolverlo una disculpa por la descortesía

tengo esta funcion que me muestra el numero en el que se encuentra el contador

1
2
$sql ="SELECT contador FROM def_consecutivo WHERE rango_numeros=:rango";
       return $this->getResponseQueryOne($sql,["rango"=>$rango]);

ahora necesito hacer la funcion en la que cuando se agregue un cliente se sume al contador dicho cliente en el rango que corresponde
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad