tengo una tabla con numero,nombre y apellidos, tengo que grabar usuarios con un numero unico para cada uno 1,2,3,4...... y que de alguna forma dicho numero se muestre en el formulario (en pantalla) antes de rellenar el formulario (no despues de enviar el formulario)
Es posible ?
index.php
<form id="form1" method="post" action="registro.php">
NOMBRE</span>
<input name="nombre" type="text" id="nombre" />
<span class="Estilo10">APELLIDO_1</span>
<input name="apellido_1" type="text" id="apellido_1" />
</label>
<span class="Estilo10">APELLIDO_2</span>
<input name="apellido_2" type="text" id="apellido_2" />
</p>
<p>
</p>
<p> </p>
<p> </p>
<p> </p>
<input type="submit" name="Submit" value="Enviar Registro" />
</form>
registro.php
<?php
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if
(isset($_POST['nombre']) && !empty($_POST['nombre'])) &&
isset($_POST['apellido_1']) && !empty($_POST['apellido_1']) &&
isset($_POST['apellido_2']) && !empty($_POST['apellido_2']))
{
// Si entramos es que todo se ha realizado correctamente
$link = mysql_connect("localhost","root","111");
mysql_select_db("Alumnos",$link);
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO chicos(nombre,apellido_1,apellido_2)
VALUES ('{$_POST['nombre']}','{$_POST['apellido_1']}','{$_POST['apellido_2']}')",$link);
// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}
} else {
echo "Error, no ha introducido todos los datos";
}
?>
No entiendo muy bien lo que decis, decis que antes de loguearte, o de ingresar lo que tengas que ingresar, te reconozca con un id, que sea tuyo??.
si es eso, sin haber ingresado ningún tipo de dato, no creo que sea posible, no hay una camarita qeu te vea y diga oh, es ese usuario, toma el num 21. jaja :laugh:
saludos, porai no entendi bien.
No, creo que no me explique muy bien.
Mi tabla contiene ahora 55 registros, quiero que el registro 56 se me muestre en el formulario a la vez que estoy rellenando el nuevo registro.
Tendrias que hacer antes de que el usuario ingrese al formulario ;) cuando clickee el boton o URL link del formulario, que este tenga una funcion dentro que consulte el campo de la tabla en cuestion que contiene los numeros, y que verifique cual es el ultimo numero (esto lo puedes verificar con SELECT MAX(campo) FROM TABLA) y cuando te retorne, agregar ese valor a una variable y sumarle 1 a ese valor para que asi quede en el siguiente numero ;)
Ahora... tienes un dilema, un valor flotante en dicha variable porque si el usuario ingresa al formulario y ok se le coloca arriba tu ID sera tal... y si el usuario no llena el formulario y lo cancela, tendras que liberar de memoria ese valor en la variable para asignarselo a otro usuario.... pero si el usuario si llena y envia el formulario, bastaria con tomar el valor de esa variable he ingresarla a la tabla junto a la info del usuario :P
claro, esta en lo correcto tifa, no habias expresado bien, si lo que queres es que antes de que un usuario se registre,o haga lo que haga, te diga el id que va a tener es fácil, en la tabla agregas una columna con los id, auto increment. y haces un max del id + (mas) 1,
saludos!
Cita de: ^TiFa^ en 17 Marzo 2010, 17:19 PM
Tendrias que hacer antes de que el usuario ingrese al formulario ;) cuando clickee el boton o URL link del formulario, que este tenga una funcion dentro que consulte el campo de la tabla en cuestion que contiene los numeros, y que verifique cual es el ultimo numero (esto lo puedes verificar con SELECT MAX(campo) FROM TABLA) y cuando te retorne, agregar ese valor a una variable y sumarle 1 a ese valor para que asi quede en el siguiente numero ;)
Ahora... tienes un dilema, un valor flotante en dicha variable porque si el usuario ingresa al formulario y ok se le coloca arriba tu ID sera tal... y si el usuario no llena el formulario y lo cancela, tendras que liberar de memoria ese valor en la variable para asignarselo a otro usuario.... pero si el usuario si llena y envia el formulario, bastaria con tomar el valor de esa variable he ingresarla a la tabla junto a la info del usuario :P
Efectivamente es un problema si cancela, otro problema seria si hay mas de un usuario a la vez grabando verdad ?
Citarclaro, esta en lo correcto tifa, no habias expresado bien, si lo que queres es que antes de que un usuario se registre,o haga lo que haga, te diga el id que va a tener es fácil, en la tabla agregas una columna con los id, auto increment. y haces un max del id + (mas) 1,
Esto funciona si grabas 3 registros a la vez ? dedes 3 ordenadores distintos ?
Cita de: teudiss en 18 Marzo 2010, 11:43 AM
Cita de: ^TiFa^ en 17 Marzo 2010, 17:19 PM
Tendrias que hacer antes de que el usuario ingrese al formulario ;) cuando clickee el boton o URL link del formulario, que este tenga una funcion dentro que consulte el campo de la tabla en cuestion que contiene los numeros, y que verifique cual es el ultimo numero (esto lo puedes verificar con SELECT MAX(campo) FROM TABLA) y cuando te retorne, agregar ese valor a una variable y sumarle 1 a ese valor para que asi quede en el siguiente numero ;)
Ahora... tienes un dilema, un valor flotante en dicha variable porque si el usuario ingresa al formulario y ok se le coloca arriba tu ID sera tal... y si el usuario no llena el formulario y lo cancela, tendras que liberar de memoria ese valor en la variable para asignarselo a otro usuario.... pero si el usuario si llena y envia el formulario, bastaria con tomar el valor de esa variable he ingresarla a la tabla junto a la info del usuario :P
Efectivamente es un problema si cancela, otro problema seria si hay mas de un usuario a la vez grabando verdad ?
Claro, si "reservas" y nunca llega a enviar el formulario, tendrias un registro vacio y tendrias que limpiarlo despues
Cita de: teudiss en 18 Marzo 2010, 11:43 AM
Citarclaro, esta en lo correcto tifa, no habias expresado bien, si lo que queres es que antes de que un usuario se registre,o haga lo que haga, te diga el id que va a tener es fácil, en la tabla agregas una columna con los id, auto increment. y haces un max del id + (mas) 1,
Esto funciona si grabas 3 registros a la vez ? dedes 3 ordenadores distintos ?
Teoricamente si, pero igual, asignale un nuevo "id" cuando se registre y dale el definitivo cuando se registre. Ejemplo
Tenemos los usuarios A, B, C:
A solicita la pagina, luego C y luego b
C es el primero en enviar el formulario, luego B y A no lo envia (cerro la ventana, ni si quiera puso cancelar)
Si reservas te quedarian.
ID | Usuario
1 | NULL (A)
2 | B
3 | C
Si le asignas cuando envian en el formulario te quedaria
ID | Usuario
1 | C
2 | B
y el A no apareceria
Al menos esa es mi idea, espero que te sirva
Ok, NULL tambien ocurre cuando dejas el campo de texto vacio en un formulario, para que no ocurra esto.... es decir para que en mi tabla este el campo vacio en vez de que aparezca "NULL" tendria que configurar los registros de la tabla desactivando la pestaña de nulo ¿ es eso correcto ?
Mas que nada es por que tengo que realizar algunas consultas de los registros que sean distintos de "rojo" por ejmplo y no quieisera que me mostrara los tambien los "NULL"
Gracias de nuevo
el problema de implementar NOT NULL es que se puede poner "" :xD
Haz dos tablas, una temporal y otra definitiva. Cuando alguien quiere ingresar le creas el registro en la tabla temporal y cuando termine lo mueves a la definitiva. Si quieres tener todo en una sola tabla hazle un flag (emjemplo: TerminoRegistro)
Luego limpias
DELTE FROM REGISTROS WHERE TerminoRegistro = 'NO'
Y ¿el número del ID está directamente relacionado con la antiguedad? Porque si no es así, puedes recorrer la tabla en busca de espacios vacios e ir agregando ahí, es costoso a nivel de optimización sobre todo cuando tienes muchos registros, pero, el problema está básicamente en que tengas que mostrarle al usuario el ID cuando ni siquiera ha hecho un registro efectivo, la idea de raul338 de una tabla alternativa y temporal tendría el mismo problema con espacios vacios.
¿Es 100% necesario mostrar el ID antes y no después del registro?
Cita de: -Ramc- en 18 Marzo 2010, 17:15 PM
Y ¿el número del ID está directamente relacionado con la antiguedad? Porque si no es así, puedes recorrer la tabla en busca de espacios vacios e ir agregando ahí, es costoso a nivel de optimización sobre todo cuando tienes muchos registros, pero, el problema está básicamente en que tengas que mostrarle al usuario el ID cuando ni siquiera ha hecho un registro efectivo, la idea de raul338 de una tabla alternativa y temporal tendría el mismo problema con espacios vacios.
Tiene el mismo problema, pero la solucion seria borrar la tabla alternativa :P y no tendria tanto costo de optimizacion
Citar
¿Es 100% necesario mostrar el ID antes y no después del registro?
+1...quiero saber, y porque?
Cita de: -Ramc- en 18 Marzo 2010, 17:15 PM
Y ¿el número del ID está directamente relacionado con la antiguedad? Porque si no es así, puedes recorrer la tabla en busca de espacios vacios e ir agregando ahí, es costoso a nivel de optimización sobre todo cuando tienes muchos registros, pero, el problema está básicamente en que tengas que mostrarle al usuario el ID cuando ni siquiera ha hecho un registro efectivo, la idea de raul338 de una tabla alternativa y temporal tendría el mismo problema con espacios vacios.
¿Es 100% necesario mostrar el ID antes y no después del registro?
Pues pensandolo bien no creo que sea necesario, lo que hare es que lo mostrare en pantalla al final del registro que asi hay seguridad de que se ha grabado y con que numero.
Gracias a todos por solucionarme el problema.
Un saludo