Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/04/2012, 13:30
carlos123
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santander
Mensajes: 81
Antigüedad: 20 años, 11 meses
Puntos: 1
Respuesta: Añadir uno a string con caracteres no numericos

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.