Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] generar numero de factura php

Estas en el tema de generar numero de factura php en el foro de PHP en Foros del Web. Muy buenas tardes, mi planteamiento es el siguiente, tengo una tabla "pago" con un campo autoincremental "npago" o numero de pago. cuando yo cargo a ...
  #1 (permalink)  
Antiguo 01/04/2013, 17:53
Avatar de mmiguel40  
Fecha de Ingreso: marzo-2013
Ubicación: Barquisimeto Venezuela
Mensajes: 17
Antigüedad: 5 años, 1 mes
Puntos: 1
Pregunta generar numero de factura php

Muy buenas tardes,

mi planteamiento es el siguiente, tengo una tabla "pago" con un campo autoincremental "npago" o numero de pago.
cuando yo cargo a traves del method post el form donde quiero que aparezca el valor de npago + 1 para eso estoy colocando la siguiente sentencia: en el sql que trae phpmyadmin corre sin problemas pero en el form me esta arrojando dentro del input"text" lo siguiente = Resource id #3




Código PHP:
$numpago mysql_query("select max('num_pago') + 1 from pago"$conexion);


echo 
"Num Factura :     <input type='text' name='num' size='30' value='".$numpago."'>"
"ya que me gustaria mostrarlo en la parte superior del form asi el usuario sabra que num de transaccion es antes de guardar"
  #2 (permalink)  
Antiguo 01/04/2013, 18:14
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 6 años, 9 meses
Puntos: 793
Respuesta: generar numero de factura php

Necesitas usar alguna función para sacar ese valor de la query, por ejemplo mysql_result o mysql_fetch_array.

Antes de imprimir puedes hacer algo así:

Código PHP:
Ver original
  1. $numpago = mysql_result($numpago, 0);

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 02/04/2013, 04:52
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 477
Antigüedad: 6 años
Puntos: 97
Respuesta: generar numero de factura php

Hola Miguel.
Solo comentarte que tienes que tener en cuenta una posible concurrencia de usuarios haciendo la misma consulta al mismo tiempo y obteniendo el mismo número de factura. Esto se soluciona utilizando transacciones o bloqueos y mucho mejor con una tabla aparte para los números de documentos.
Y lo más simple és informar al usuario del num. de factura una vez esta se haya guardado en la db, no antes. Así te ahorras dichos problemas.

saludos.
  #4 (permalink)  
Antiguo 02/04/2013, 13:15
Avatar de mmiguel40  
Fecha de Ingreso: marzo-2013
Ubicación: Barquisimeto Venezuela
Mensajes: 17
Antigüedad: 5 años, 1 mes
Puntos: 1
Respuesta: generar numero de factura php

estuve haciendo pruebas con la sentencia que me recomendo andres y algo debo estar haciendo mal porque no me muestra el valor en el input no obstante tampoco muere por error. voy a realizarle unos cambios al form para que en efecto lo muestre al final tomando en cuenta la opcion de oscar. Una vez tenga listo el form les aviso como me fue. gracias !!
  #5 (permalink)  
Antiguo 02/04/2013, 13:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 6 años, 9 meses
Puntos: 793
Respuesta: generar numero de factura php

quita las comillas a la consulta:

Código SQL:
Ver original
  1. SELECT MAX(num_pago) + 1 FROM pago

Código PHP:
Ver original
  1. $sql = 'select max(num_pago) + 1 from pago';
  2. $res = mysql_query($sql) or die('Error: ' . mysql_error());
  3. $numpago = mysql_result($res, 0);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 04/04/2013, 12:10
Avatar de mmiguel40  
Fecha de Ingreso: marzo-2013
Ubicación: Barquisimeto Venezuela
Mensajes: 17
Antigüedad: 5 años, 1 mes
Puntos: 1
Respuesta: generar numero de factura php

Gracias por sus comentarios el form esta listo solo me falta generar 3 reportes en tablas luego si el usuario gusta exportarlo a pdf, por ultimo colocarle el arte a los formularios y luego de esto puedo decir que mi primer sistema web esta listo. Saludos! Cualquier otra duda les comentare
  #7 (permalink)  
Antiguo 25/09/2013, 14:05
 
Fecha de Ingreso: septiembre-2013
Mensajes: 4
Antigüedad: 4 años, 7 meses
Puntos: 0
Respuesta: generar numero de factura php

Debo retomar el concepto de que no se debería mostra antes de grabar la transacción ya que podes tener 2 usuarios viendo el mismo numero de factura.. Estoy tratando de buscarle LA solución y todavia no se la encuentro.. Yo estoy usando mysql y php, por ahora la mas factible es unsar un campo autoincremento que guarde el numero de factura.. Saludos
  #8 (permalink)  
Antiguo 08/12/2017, 21:29
 
Fecha de Ingreso: febrero-2015
Ubicación: venezuela
Mensajes: 50
Antigüedad: 3 años, 2 meses
Puntos: 0
Respuesta: generar numero de factura php

Cita:
Iniciado por Musikdoktor Ver Mensaje
Debo retomar el concepto de que no se debería mostra antes de grabar la transacción ya que podes tener 2 usuarios viendo el mismo numero de factura.. Estoy tratando de buscarle LA solución y todavia no se la encuentro.. Yo estoy usando mysql y php, por ahora la mas factible es unsar un campo autoincremento que guarde el numero de factura.. Saludos
porque no purevas con
$consul=("SELECT num_pago FROM pago ORDER BY id DESC LIMIT 1");

lo que vas hacer hay es sacar el ultimo numero de pago ingresado en la base de dato suponiendo que fue ejemplo el 36 entonces guardas el resultado 36 en una variable luego le sumas 1 y asi se auto incrementaria

aqui un ejemplo que hice pata mi sistema aunque el mio es de numero de sorteo de loterias pero es basicamente igual supongo

Código PHP:
Ver original
  1. $consul=("SELECT sorteo FROM r_animalitos ORDER BY id DESC LIMIT 1");
  2.     $result = $conectar->query($consul);
  3.     $row = $result->fetch_array(MYSQLI_ASSOC );
  4.     $sorteo=$row["sorteo"];
  5.     $numero =  $sorteo+1;

con eso siempre me va dar el ultimo numero de sorteo ingresado en tu caso tu ultimo numero de factura ingresado luego la sumas y la guardas en la base de dato en mi caso yo una ves tomo el ultimo numero de sorteo le sumo uno luego lo guardo con

$consulta = ("INSERT INTO r_animalitos(fecha,hora,sorteo,resultado) VALUES ('$fecha','$hora',$numero, '$resultado')");

y en caso de que por ejemplo el ultimo egistro que es 52 sea eliminado el siguiente registro se guardaria como 52 no se si me doy a entender y por hay ley que algo y es cierto es mejor que muestres el numero de factura despues de que se haya generado la factura porque de no ser asi puede haver dos usuarios viendo el mismo numero de factura
  #9 (permalink)  
Antiguo 08/12/2017, 21:30
 
Fecha de Ingreso: febrero-2015
Ubicación: venezuela
Mensajes: 50
Antigüedad: 3 años, 2 meses
Puntos: 0
Respuesta: generar numero de factura php

Cita:
Iniciado por ceysmar Ver Mensaje
porque no purevas con
$consul=("SELECT num_pago FROM pago ORDER BY id DESC LIMIT 1");

lo que vas hacer hay es sacar el ultimo numero de pago ingresado en la base de dato suponiendo que fue ejemplo el 36 entonces guardas el resultado 36 en una variable luego le sumas 1 y asi se auto incrementaria

aqui un ejemplo que hice pata mi sistema aunque el mio es de numero de sorteo de loterias pero es basicamente igual supongo

Código PHP:
Ver original
  1. $consul=("SELECT sorteo FROM r_animalitos ORDER BY id DESC LIMIT 1");
  2.     $result = $conectar->query($consul);
  3.     $row = $result->fetch_array(MYSQLI_ASSOC );
  4.     $sorteo=$row["sorteo"];
  5.     $numero =  $sorteo+1;

con eso siempre me va dar el ultimo numero de sorteo ingresado en tu caso tu ultimo numero de factura ingresado luego la sumas y la guardas en la base de dato en mi caso yo una ves tomo el ultimo numero de sorteo le sumo uno luego lo guardo con

$consulta = ("INSERT INTO r_animalitos(fecha,hora,sorteo,resultado) VALUES ('$fecha','$hora',$numero, '$resultado')");

y en caso de que por ejemplo el ultimo egistro que es 52 sea eliminado el siguiente registro se guardaria como 52 no se si me doy a entender y por hay ley que algo y es cierto es mejor que muestres el numero de factura despues de que se haya generado la factura porque de no ser asi puede haver dos usuarios viendo el mismo numero de factura
para cuando respondi supongo ya estaba solucionado jajaja no mire la fecha de la publicacion



La zona horaria es GMT -6. Ahora son las 09:02.