Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/01/2006, 14:42
Avatar de haron
haron
 
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
en principio el problema este lo soluciono de la siguiente manera:

imagina que tienes una pantalla en la que se muestra una tabla con los items insertados.

cuando insertas un nuevo item, en lugar de quedarte con el 'id', vuelves a la pantalla anterior y observas que aparece en primera posicion (si ordenas los items por el 'id' de forma descendiente).

entonces el usuario puede 'pinchar' sobre ese nuevo elemento y editarlo, ya que ahora se conoce el 'id'.

si no es esa tu situacion, puedes quitar la opcion autoincrementable y crear una funcion que te devuelva un 'id' aleatorio, de manera que la probabilidad matematica de generar dos 'ids' iguales sea muy baja (mas baja incluso que te toque la loteria).

puedes probar con una funcion parecida a esta:
Código:
function getNewId($size = 20) {
	$str = NULL;
	for ($i = 0; $i < $size; $i ++) {
		$str .= rand(0, 9);
	}
	return $str;
}
la funcionanterior te genera un 'id' de veinte digitos. es casi imposible que genere dos 'ids' iguales.

tendrias que hacer algo parecido a esto:

$id = getNewId();
$sql = "insert into my_table(id, ...) values ($id, ...)";
$result = mysql_query($sql, $connection);
// etc..., etc...
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.