Bueno chicos,
He hecho el trabajo sucio y lo publico para que alguien lo use:
Código:
<?php
//Calculo de la siguiente referencia
$mySQL = "SELECT max(referencia) FROM articulos";
$ultimaReferencia = $db->get_var($mySQL);
//Probado tambien con :
//$ultimaReferencia = "20120#001";
//$ultimaReferencia = "20120#";
$lenString = strlen($ultimaReferencia);
for ($i = $lenString - 1; $i >= 0; $i--) {
if (!is_numeric($ultimaReferencia[$i])) { break; }
}
$lenPrefijo = $i + 1 ;
if($lenString == $lenPrefijo){
$lenContador = "3";
$prefijo = $ultimaReferencia;
$contador = 0;
}else{
$lenContador = $lenString - $lenPrefijo;
$prefijo = substr($ultimaReferencia,0,$lenPrefijo);
$contador = intval(substr($ultimaReferencia,$lenPrefijo));
}
echo " lenContador(".$lenContador.")";
echo "prefijo (".$prefijo.")";
echo " contador (".$contador.")";
$contador = $contador + 1;
for ($j=0; $j <= $lenContador - strlen($contador); $j++) {
$contador = "0".$contador;
}
echo " nuevo contador (".$contador.")";
$nuevaReferencia = $prefijo.$contador;
?>
Funciona incluso con referencia que acaban en un digito no numérico.
Un saludo a todos.
Tambien disponible la funcion forosdeweb().....
Gracias GatorV, has sido una vez más una inspiración.