Yo hice algo parecido a lo que tu necesitas, puedes hacer una tabla que se llame folios, hacer el query asi por ejemplo:
Código PHP:
$connector = new MySQLConnector; // este es un objeto de una clase que te crea una conexion a mysql
$connector->w_sql = "SELECT * FROM folios";
$connector->WMySQLQuery();
$resultado = $connector-> WMySQLResult();
$row = mysql_fetch_array($resultado);
$folio = $row['id'] + 1;
switch ($folio) {
case ($folio < 10) :
$prefijo = "000";
break;
case ($folio >9 && $folio < 100) :
$prefijo = "00";
break;
case ($folio > 99 && $folio < 1000) :
$prefijo = "0";
break;
case ($folio > 999 && $folio < 10000) :
$prefijo = "";
break;
}
$orden = $prefijo.$folio;
Cuando termines la captura de datos, actualizas el campo folio con un UPDATE y el folio de tu orden.
Seguramente hay algo mas eficiente que esto, pero a mi me ha funcionado hasta ahora