resumiendo, si yo tengo:
Código PHP:
$consulta = mysql_query("INSERT INTO table VALUES ('', '$dato1', '$dato2)", $bd);
Pd. Si puede ser sin hacer otra consulta extrayendo el registro con el id mas grande...
| |||
cuando hago un insert into... puedo conocer el id asignado? a ver si me explico, si ingresamos un nuevo registro en una tabla de la base de datos y necesito inmediatamente despues conocer el id que ha sido asignado, para, por ejemplo, generar un enlace dinamico... resumiendo, si yo tengo: Código PHP: Pd. Si puede ser sin hacer otra consulta extrayendo el registro con el id mas grande... Última edición por Nark; 02/08/2004 a las 08:20 |
| |||
mysql_insert_id (PHP 3, PHP 4 ) mysql_insert_id -- Devuelve el identificador generado en la última llamada a INSERT Descripción int mysql_insert_id ( [int identificador_de_enlace]) mysql_insert_id() devuelve el identificador generado para un campo de tipo AUTO_INCREMENTED. Se devolvera el identificador generado por el último INSERT para el identificador_de_enlace. Si no se especifica el identificador_de_enlace, se asume por defecto el último enlace abierto. >> Espero que te sirva.Saludos
__________________ ·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos |
| |||
Una cosa , te aconsejo que los 'insert' los definas con la siguiente sintaxis: "insert into mitabla (col1,col2,col3,) values(valor1,valor2,valor3)"; Te lo digo porque si algun dia modificas los campos de "mitabla" añadiendo columnas, te ahorraras mas de una actualizacion de codigo. Saludos !! |
| |||
Muchas gracias a los dos, problema solucionado! pero viendo vuestras respuestas me surguen otras dos preguntas: a) puedo conocer que id le tocaria si hiciera un insert into, no despues de hacer la consulta sino antes de hacerla, conocer que numero de identificador se generara b) si yo tengo insert into mitabla (col1,col2,col3,) values(valor1,valor2,valor3) y añado una nueva columna en la tabla de la bd, al realizar esta consulta sin modificar nada, no daria error? no tendria que añadir valor4, aunque fuera un valor vacio? |
| |||
a) ..Al ser tu campo "ID" uno numérico y autoincremental (además de único) .. podrías hacer una consulta SQL tipo "MAX()" para ver que valor de esa "columna" (de toda la tabla) es su valor máximo. SELECT MAX(id) FROM tabla b) Esto ya sería un error de sintax: insert into mitabla (col1,col2,col3,) values(valor1,valor2,valor3) Si a tu tabla "mitabla" creas un nuevo campo ("columna") todos los registros de esa tabla para ese campo (columna) tomaran el valor que establezcas como predeterminado para ese tipo de dato de ese campo. De todas formas .. es problable que el error no lo estés viendo que es bien diferente a "no se está produciendo". Puedes usar estrucutras tipo: Código PHP: Un saludo, |
| |||
No entendí bien que deseas validar .. o el tema del "último registro borrado" .. Un campo autoincremental .. si tu borras un registro queda el espacio y la cuenta sigue por el último que se generó. Ejemplo: Si tenemos ID's de registros: 1,2,3,4 borramos el 3 ... nos queda: 1,2,4 pero si insertamos otro registro seguiremos en: 1,2,4,5 No sé si esto resuelve parte de tu duda?. Un saludo, |
| |||
No lo que me comentas ya lo conocia, el problema veo yo cuando se produzca lo siguiente: tenemos: a) 1, 2, 3, 4 se elimina el ultimo por x motivo, quedando: b) 1, 2, 3 si realizo un insert into, tendremos lo siguiente: c) 1, 2, 3, 5 (el 4, no se vuelve a cojer... salta) muy bien, hasta aqui de acuerdo, pero si utilizo tu metodo y hago una consulta tal como tu me indicas: Cita: cuando estoy en el punto b) (o sea, tengo 1 2 3, y el 4 lo he borrado) y sacar el MAX me dara 3, si le sumo 1 tengo que el siguiente id sera el 4, pero resulta que va a ser el 5 porque el 4 es una clave eliminada.Al ser tu campo "ID" uno numérico y autoincremental (además de único) .. podrías hacer una consulta SQL tipo "MAX()" para ver que valor de esa "columna" (de toda la tabla) es su valor máximo Por lo tanto habria que buscar otro metodo que me indicase que clave auto_numerica se me generara en una tabla. |
| |||
Pues entonces no sé .. si hay algo que se pueda hacer será por médio de SQL, podrías ir leyendo sobre el tema en: http://dev.mysql.com/doc/mysql/en/ex...INCREMENT.html http://dev.mysql.com/doc/mysql/en/mysql_insert_id.html Por cierto .. para que quieres saber que ID -se va a generar -.. si en cualquier momento (salvo que bloques la tabla) lo puede tomar otro registro? Un saludo, |
| ||||
Código PHP:
__________________ ¿Te apasiona el mundo del guión? El portal del guión |