elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Asignar numero en tabla automaticamente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Asignar numero en tabla automaticamente  (Leído 5,679 veces)
teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Asignar numero en tabla automaticamente
« en: 17 Marzo 2010, 08:00 am »

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
Código:
<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>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <input type="submit" name="Submit" value="Enviar Registro" />
  </form>

registro.php
Código:
<?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";

    }

?>



En línea

fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Asignar numero en tabla automaticamente
« Respuesta #1 en: 17 Marzo 2010, 15:59 pm »

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.


En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Re: Asignar numero en tabla automaticamente
« Respuesta #2 en: 17 Marzo 2010, 17:12 pm »

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.
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Asignar numero en tabla automaticamente
« Respuesta #3 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
En línea

fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Asignar numero en tabla automaticamente
« Respuesta #4 en: 17 Marzo 2010, 23:12 pm »

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!
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Re: Asignar numero en tabla automaticamente
« Respuesta #5 en: 18 Marzo 2010, 11:43 am »

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 ?

Citar
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,

Esto funciona si grabas 3 registros a la vez ? dedes 3 ordenadores distintos ?
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Asignar numero en tabla automaticamente
« Respuesta #6 en: 18 Marzo 2010, 13:28 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

Citar
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,

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
En línea

teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Re: Asignar numero en tabla automaticamente
« Respuesta #7 en: 18 Marzo 2010, 15:29 pm »

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
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Asignar numero en tabla automaticamente
« Respuesta #8 en: 18 Marzo 2010, 17:07 pm »

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
Código
  1. DELTE FROM REGISTROS WHERE TerminoRegistro = 'NO'
En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Asignar numero en tabla automaticamente
« Respuesta #9 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?
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Numero de filas máximas en una tabla con Loocalhost en Xampp (PhpMyAdmin)
Bases de Datos
z3nth10n 5 8,875 Último mensaje 1 Agosto 2013, 16:24 pm
por 1mpuls0
Confirman la existencia del ununpentio, el elemento número 115 de la tabla ...
Noticias
wolfbcn 0 1,124 Último mensaje 28 Agosto 2013, 21:33 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines