Foros del Web » Programando para Internet » PHP »

Grabar registros

Estas en el tema de Grabar registros en el foro de PHP en Foros del Web. Hola estoy creando un registro y para hacer las id tengo que hacerlas multiplo de 16 y e conseguido que se vayan grabando los registros ...
  #1 (permalink)  
Antiguo 18/03/2011, 14:26
 
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Grabar registros

Hola estoy creando un registro y para hacer las id tengo que hacerlas multiplo de 16 y e conseguido que se vayan grabando los registros en bd con sus id con multiplo de 16 que seria algo asi:

empezando por 32,48,64,80,96,112,etc.. y asi sucesivamente graba un id multiplo de 16 por cuenta hasta hay bien aqui dejo el codigo:

Código:
<?php
mysql_connect("localhost","user","clave") or die("Error de conexion!");
mysql_select_db("bd") or die("Error eligiendo tabla!");

//Define el multiplo
$multi = 16;

//Recoge los valores
$id = $_POST['id'];
$nombre = $_POST['nombre'];

//Selecciona los campos id de la bd
$selecId = mysql_query("SELECT COUNT(ID) FROM multiplo WHERE id = '$id'");
$result = mysql_fetch_array($selecId);

if($reult['id'] == '$id') {
	//Si el id existe
}else{
	//Sino existe!
	//si el valor de id es 0
	if($id == 0) {
			if($reult['id'] == '$id') {
			}else{
			$id = $multi+$multi;
			mysql_query("INSERT INTO multiplo (ID,nombre) VALUES ('$id','$nombre')");
			}
	}else{
		//A la id le suma el multiplo
		$id+=$multi;
		mysql_query("INSERT INTO multiplo (ID,nombre) VALUES ('$id','$nombre')");
	}
}
?>

<center>
<font size='+4'>
<u>Multiplos de 16 con BD</u>
</font>
<br><br><br>

<form action="<?php $PHP_SELF; ?>" method="POST">
ID: <input type="hidden" name="id" value="<?php echo $id; ?>"><br>
Nombre: <input type="text" name="nombre" value="test"><br>
<input type="submit" value="Crear">
</form>
</center>
Pero claro quiero que cuando registre los id tambien compruebe todos los id de la tabla para que no repita ninguno, y si por ej se borra una cuenta porque no se utiliza quedaria ese id libre, y luego que grabe el id en el que hay libre para que queden bien seria lo suyo. Y tambien
que si se borran todas las cuentas empiece por 32 de nuevo.

Si me pueden poner un ejemplo de como podria hacerlo, e buscado por google los foros y no encontre solucion a como llegar hacerlo asi que no me digan que busque porque busque y no encontre solucion.

Gracias!
__________________
¡owei! :cool:

Visita Mi Web:

La Web de owei
  #2 (permalink)  
Antiguo 18/03/2011, 14:56
 
Fecha de Ingreso: marzo-2011
Ubicación: Palmira
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Grabar registros

Hola amigo,

para evitar que el id se repita tienes que colocar ese camo en la tabla como clave primaria,
y para tener un orden podrias hacerlo consultando el ultimo id que tenias y sumando 16,

Bueno, espero que te haya servido, intentalo y cualquier cosa preuntas de nuevo

saludos
  #3 (permalink)  
Antiguo 18/03/2011, 15:11
 
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Respuesta: Grabar registros

gracias nachocb_66 me sirvio de ayuda lo del indice para que no se repita

espero respuesta si alguien puede ayudarme con un ejemplo de como hacer lo que pone arriba.

gracias
__________________
¡owei! :cool:

Visita Mi Web:

La Web de owei
  #4 (permalink)  
Antiguo 18/03/2011, 15:14
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Grabar registros

Bueno, lo que dice el compañero nachocb_66 es una forma de hacerlo muy valida...

La verdad a mi no me gusta borrar físicamente los registros de una tabla, prefiero utilizar un campo activo con 1 y 0... donde 1 es que esta activo y el 0 es si se elimino... pero igual ahí lo tengo... nunca se sabe cuando se podrá necesitar...

Después si decides hacerlo así... podrías crear un campo AUTOINCREMENT el cual le puedes decir de cuanto en cuanto va aumentando... no solo es de 1 en 1 (tu puede parametrizar en cuanto va aumentando), y como no eliminas los registros físicamente los ID que se vayan generando nunca se repetirán...

Es otra forma de hacerlo...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 18/03/2011, 15:28
 
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Respuesta: Grabar registros

jotaincubus lo que pasa que no puedo cambiar el campo a autoincrement porque es para una bd que ya viene echa asi para un juego entonces si modifico los campos deja de funcionar e hay el problema.

Y la otra cosa que mas interesa es que si se borran todos los reg empieze de cero por 32 eso como podria hacerlo?

resulta que yo tengo este codigo:


Código PHP:
//Define el multiplo
$multi = 16;

//Recoge los valores
$id = $_POST['id'];
$nombre = $_POST['nombre'];

//Selecciona los campos id de la bd
$selecId = mysql_query("SELECT COUNT(ID) FROM multiplo WHERE id = '$id'");
$result = mysql_fetch_array($selecId);


if($reult['id'] == '$id') {
    //Si el id existe
}else{
    //Sino existe!
    //si el valor de id es 0
    if($id == 0) {
            $id = $multi+$multi;
            mysql_query("INSERT INTO multiplo (ID,nombre) VALUES ('$id','$nombre')");
    
    }else{
        //A la id le suma el multiplo
        $id+=$multi;
        mysql_query("INSERT INTO multiplo (ID,nombre) VALUES ('$id','$nombre')");
    }
}

?>

<center>
<font size='+4'>
<u>Multiplos de 16 con BD</u>
</font>
<br><br><br>

<form action="<?php $PHP_SELF?>" method="POST">
ID: <input type="text" name="id" value="<?php echo $id?>"><br>
Nombre: <input type="text" name="nombre" value="test"><br>
<input type="submit" value="Crear">
</form>
</center>
lo que mas interesa que si se borran todos los reg de la tabla empiece de nuevo por 32 por ejemplo si va por 112 y no hay reg en la bd vuelva a grabar desde 32.

Si me podeis poner un codigo de ejemplo me seria de gran ayuda.

Gracias!
__________________
¡owei! :cool:

Visita Mi Web:

La Web de owei

Etiquetas: registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.