Foros del Web » Programando para Internet » PHP »

como podria..

Estas en el tema de como podria.. en el foro de PHP en Foros del Web. como obtener el ultimo id creado? Código PHP: select id from tabla where id =  a q ?  un saludo...
  #1 (permalink)  
Antiguo 18/02/2003, 10:52
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
como podria..

como obtener el ultimo id creado?

Código PHP:
select id from tabla where ida q
un saludo
__________________
Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 18/02/2003, 11:46
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
select Max(id) from tabla
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 18/02/2003, 13:12
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 14 años, 10 meses
Puntos: 0
yo tengo:

Código:
$maxusu = "select Max(id) from usuarios";
$resp = mysql_query($maxusu);

echo "$resp";
pero al ponerlo me sale esto:

Resource id #7


que he echo mal?
  #4 (permalink)  
Antiguo 18/02/2003, 13:33
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
Código PHP:
$maxusu "select Max(id) from usuarios";
$resp mysql_query($maxusu);
$row=mysql_fetch_array($resp);

echo 
$row["id"];

mysql_free_result($resp); 
con eso te derberia mostrar el dato que buscas


http://www.php.net/manual/es/functio...etch-array.php


Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #5 (permalink)  
Antiguo 18/02/2003, 14:57
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Código PHP:
<?
$maxusu 
"select Max(id) as ultimo from usuarios";

echo 
mysql_result($maxusu0ultimo);

?>
__________________
M a l d i t o F r i k i
  #6 (permalink)  
Antiguo 18/02/2003, 16:53
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 16 años, 1 mes
Puntos: 0
People es aun mas facil

$ultimoid = mysql_query("SELECT FROM tabla WHERE id='$id' ORDER BY id DESC LIMIT 1");

Y ya tenemos el ultimo ID creado

Saludos.
__________________
ChilenoCesar Looking for something new...
  #7 (permalink)  
Antiguo 18/02/2003, 18:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Mas sencillo si cabe:

echo mysql_insert_id();

Eso entrega el Último ID generado por un campo autoincremental de la BD/tabla en uso (se supone q lo usaras despues de haber hecho un INSERT y deseas conocer el ID q se generó para usarlo en algun SELECT/UPDATE posterior ..)

Un saludo,
  #8 (permalink)  
Antiguo 19/02/2003, 07:26
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
pero...

pero lo hago en otra pagina...

es decir el insert se hace en otra pagina no donde pido la ultima id generada.
__________________
Muchas gracias, saludos.
  #9 (permalink)  
Antiguo 19/02/2003, 08:39
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: pero...

En ese caso te sirven todas las respuestas menos la de Cluster

Cita:
Mensaje Original por xias
pero lo hago en otra pagina...

es decir el insert se hace en otra pagina no donde pido la ultima id generada.
__________________
M a l d i t o F r i k i
  #10 (permalink)  
Antiguo 19/02/2003, 09:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Re: pero...

Cita:
Mensaje Original por Cain
En ese caso te sirven todas las respuestas menos la de Cluster

Bueno .. mysql_insert_id() genera igualmente el último ID autonumerico generado por un INSERT .. Cierto es q si lo vas a ejecutar en otra página en ese tiempo alguien mas puede generar otro ID (otro registro q entre via INSERT ya lo haría) .. por lo tanto el ID no correspondería ..

Pero igualmente tras el INSERT puedes hacer el mysql_insert_id() y pasarselo como parámetro via URL/cookie/session a la siguente(s) páginas q lo necesites .. Siendo recomendable via session (pues sinó pordría ser "adulterado" en el camino).

Las otras opcines te solucionan el problema de ir pasando esa variable "critica" y tan solo consumes algo mas de recursos en el script (pagina) q lo necesites ejecutando otra consulta a tu Mysql ..

Un saludo,
  #11 (permalink)  
Antiguo 19/02/2003, 09:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Las otras soluciones tambien sufren de ese fallo. Si en el tiempo que pasa desde que haces la insercion en la pagina 1 hasta que lees el ultimo ID en la pagina 2, otro usuario inserta un nuevo registro, el valor devuelto por todas las soluciones seria el ID del registro insertado por el otro usuario.

Dicho esto, la unica solucion de leer el ID del registro que has insertado en la pagina 1, es leerlo en la propia pagina 1. Y en ese caso el mejor metodo (creo yo) es el de mysql_insert_id(), si el ID es autonumerico (si no lo es, no funciona).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 19/02/2003, 10:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
jeej pues tienes razon Josemi .. xD ..

Yo la verdad q siempre lo calculo en la "pagina 1" y se lo paso a la pagina 2 por una variable de session .. Si lo haces en la "página 1" .. incluso podrias Bloquear la tabla q se está usando (de INSERT's) en ese instante para obtener el ID generado por un indice autonumerico.

últimamente estoy usando mas la version SQL de mysql_last_id() pero igual funciona ..

Un saludo,
  #13 (permalink)  
Antiguo 19/02/2003, 10:52
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
entonces..

entonces como lo hago parq obtener el valor en la pagina 2?

como es eso de las sesiones?

y lo de bloquear la tabla?
__________________
Muchas gracias, saludos.
  #14 (permalink)  
Antiguo 19/02/2003, 11:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo de las "sessiones" empieza por leer las FAQ's de este foro .. tienes unos ejemplos básicos .. luego visat www.php.net ..

Lo de bloquear la tabla .. En SQL de Mysql:
http://www.mysql.com/doc/en/LOCK_TABLES.html
(si tienes problemas con eso .. usa el foro Base de datos .. )

Un saludo,
  #15 (permalink)  
Antiguo 20/02/2003, 10:07
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
no me funciona...

tengo este codigo y no me da error pero tampoco me muestra el ultimo id insertado.


Código PHP:
$result=mysql_db_query("aviso","select max(id) from aviso_tradicional");

while (
$row=mysql_fetch_array($result))
{
echo 
'<tr align="left" valign="top"><td><font size="2" face="Geneva, Arial, Helvetica, san-serif">'.$row["id"].'</font></td>';
}
mysql_free_result($result
__________________
Muchas gracias, saludos.
  #16 (permalink)  
Antiguo 20/02/2003, 10:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si has aplicado una funcion a un campo de tu consulta SQL .. tienes dos opciones para acceder al valor resultante de aplicar dicha función:

Accediendo por el indice numerico .. (no por el indice asociativo).
Código PHP:
$result=mysql_db_query("aviso","select max(id) from aviso_tradicional");

while (
$row=mysql_fetch_array($result))
{
echo 
'<tr align="left" valign="top"><td><font size="2" face="Geneva, Arial, Helvetica, san-serif">'.$row[0].'</font></td>';
}
mysql_free_result($result
Haciendo un alias de la funcion .. y accediendo por su indice asociativo:
Código PHP:
$result=mysql_db_query("aviso","select max(id) as maximo from aviso_tradicional");

while (
$row=mysql_fetch_array($result))
{
echo 
'<tr align="left" valign="top"><td><font size="2" face="Geneva, Arial, Helvetica, san-serif">'.$row['maximo'].'</font></td>';
}
mysql_free_result($result
Otro detalles es que ese max() solo va a entregarte UN solo registro con el valor del campo id maximo .. Por lo tanto puedes eliminar completametne el bucle while y quedarte con solo el $row=mysql_fetch_array($result) .. o bien usar simplemente:

Código PHP:
mysql_result($result,0); 
O si usas el alias

Código PHP:
mysql_result($result,0,"maximo"); 
Un saludo,
  #17 (permalink)  
Antiguo 20/02/2003, 11:11
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
cuando...

cuando dices lo de alias a q te refieres?
__________________
Muchas gracias, saludos.
  #18 (permalink)  
Antiguo 20/02/2003, 11:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
select max(id) as maximo

Eso en SQL (de Mysql por lo menos) es un Alias .. osese .. se asigna el resultado de esa funcion a ese nombre (variable) ..

Mas info:
www.mysql.com

Un saludo,
  #19 (permalink)  
Antiguo 20/02/2003, 11:37
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
ok, otra cosa

habria alguna forma para q el resultado apareciese dentro de una caja o circulo o algo asi?
__________________
Muchas gracias, saludos.
  #20 (permalink)  
Antiguo 20/02/2003, 11:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te refieres a un grafico y sobre-impreso ese valor de esa variable?

Si es eso .. si, se puede con las librerias GD (pero si es eso lo que quires inicia un nuevo tema please ..y usa el buscador pues de vez en cuando se pregunta eso mismo )

Un saludo,
  #21 (permalink)  
Antiguo 20/02/2003, 11:51
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
gracias

muchas gracias
__________________
Muchas gracias, saludos.
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 19:32.