Foros del Web » Programando para Internet » PHP »

Tomar el último valor de un campo en la BD.

Estas en el tema de Tomar el último valor de un campo en la BD. en el foro de PHP en Foros del Web. Hola. Quisiera saber como hacer un 'SELECT' que me tome el ultimo valor de un campo en una tabla en la BD. Imaginemos que tengo ...
  #1 (permalink)  
Antiguo 25/06/2009, 11:19
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Tomar el último valor de un campo en la BD.

Hola.

Quisiera saber como hacer un 'SELECT' que me tome el ultimo valor de un campo en una tabla en la BD.

Imaginemos que tengo algo así:

Código PHP:
Tabla'nombres'
clave1         nombre       id        apellidos         (Campos)

12345         juan           87        perez              (Valores)
67891         pedro         75        rodriguez
32148         mario          98       gonzalez 
Quiero que ese select me tome únicamente el último valor de 'clave1', que vendría siendo '32148'.

Ése 'SELECT' quiero guardarlo en una variable '$variable', me imagino que sería algo así, ¿no?

Código PHP:
$variable'SELECT...' 
¿Cómo sería el 'SELECT' entonces?

Gracias de antemano, saludos.
  #2 (permalink)  
Antiguo 25/06/2009, 11:27
 
Fecha de Ingreso: noviembre-2008
Ubicación: lima
Mensajes: 148
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Tomar el último valor de un campo en la BD.

El campo clave1, debe estar ordenado o tu tabal se ordena bajo un criterio?, pues si es asi, tendrias que hacer esto:

Código PHP:
<?

$sql
="select * from nombres order by clave 1 asc limit 0,1";

?>

//con esto te bota el ultimo registro pero ordenado por el campo clave1 en forma ascendente, te  botaria la fila de la clave1=67891
  #3 (permalink)  
Antiguo 25/06/2009, 11:28
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Tomar el último valor de un campo en la BD.

Que tal!!!!!!!!

Al hacer el select simple mysql ordenara por la clave de menor a mayor quedando de ultimo el mayor si ese ultimo es el que te sirve puedes invertirlo con order by clave y luego desc para que el ultimo te quede de primero ademas con un limit te recupera solo uno.

Es lo que requieres ?

Suerte.
  #4 (permalink)  
Antiguo 25/06/2009, 11:30
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Tomar el último valor de un campo en la BD.

Hola,

una pregunta, para que quieres hacer eso? te lo pregunto porque me parece algo 'raro'. Si nos dices porque lo quieres hacer puede que te propongamos una solucion mejor.

Saludos!
  #5 (permalink)  
Antiguo 25/06/2009, 11:47
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Tomar el último valor de un campo en la BD.

Hmm eso hice, lo que yo queria hacer es guardar ese valor en una variable, e hice algo así:

Código PHP:
$clave="select * from nombres order by clave 1 asc limit 0,1"
while(
condicion){
$ASDFINSERT into tabla(clavevaloresxvalues($clavevalorx);
$clave++;

Y al revisar el la BD, el 'valorx' se guardo perfectamente, mientras que '$clave' se guardó así:
'select * f'.

¿Alguna idea?

Saludos.
  #6 (permalink)  
Antiguo 25/06/2009, 11:50
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Tomar el último valor de un campo en la BD.

Cita:
Iniciado por Gaug Ver Mensaje
Hmm eso hice, lo que yo queria hacer es guardar ese valor en una variable, e hice algo así:

Código PHP:
$clave="select * from nombres order by clave 1 asc limit 0,1"
while(
condicion){
$ASDFINSERT into tabla(clavevaloresxvalues($clavevalorx);
$clave++;

Y al revisar el la BD, el 'valorx' se guardo perfectamente, mientras que '$clave' se guardó así:
'select * f'.

¿Alguna idea?

Saludos.
Sigo sin entender que es lo que necesitas. Ya que "...lo que yo queria hacer es guardar ese valor en una variable..." no aporta mucho.

La pregunta no es donde quieres guardar eso, si no porque lo quieres guardar o con que objetivo.

Saludos!
  #7 (permalink)  
Antiguo 25/06/2009, 11:57
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Tomar el último valor de un campo en la BD.

Bueno, estoy imprimiendo valores de un archivo CSV en la BD, y en un campo quiero tomar el último valor de otra tabla, sumarle 1 y agregarlo al insert junto con los demás valores del CSV, es decir quiero hacer todo dentro del mismo INSERT, para que los valores estén acomodados, dentro del ciclo 'while' tengo el INSERT, para que cada vez que vaya recorriendo una línea le vaya sumando 1 al valor que guarde en la variable.

¿Se entiende?

Saludos.
  #8 (permalink)  
Antiguo 25/06/2009, 12:08
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Tomar el último valor de un campo en la BD.

Código PHP:
$clave="select * from nombres order by clave 1 asc limit 0,1"
while(
condicion){
$ASDFINSERT into tabla(clavevaloresxvalues($clavevalorx);
$clave++;

esto no puede funcionar porque estás sumando 1 a una cadena de texto (¿¿¿???). Así que yo lo haría de otro modo:
Código PHP:
$clave2=0;
$clave="select * from nombres order by clave ".$clave2." asc limit 0,1"
while(
condicion){
$ASDFINSERT into tabla(clavevaloresxvalues($clave2valorx);
$clave2++;

Aunque esto no creo que funcione, deberías adaptarlo a algo parecido.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #9 (permalink)  
Antiguo 25/06/2009, 12:16
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Tomar el último valor de un campo en la BD.

No es una cadena de texto, digamos que es algo así:

Código PHP:
D4526788 
A eso le quiero sumar 1, ¿no es posible?

EDIT: Ya corregí ese problema, lo hice así:

Código PHP:
  $query_Recordset "SELECT * from tabla order by clave1 asc limit 0,1";
$Recordset mysql_query($query_Recordset$conex) or die(mysql_error());
$row_Recordset mysql_fetch_assoc($Recordset);

$clave=$row_Recordset
Y ahora al momento de insertar, me fijo en la BD y en el campo 'clave1' me aparece esto así literalmente 'Array'

¿Alguna idea para resolver esto?

Saludos.

Última edición por Gaug; 25/06/2009 a las 13:00
  #10 (permalink)  
Antiguo 25/06/2009, 15:29
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Tomar el último valor de un campo en la BD.

Porque te estas refiriendo al contenedor en general, no al contenido.
al usar fetch_assoc deberia ser asi:

Código PHP:
while ($fila mysql_fetch_assoc($resultado)) {
    echo 
$fila["id_usuario"];
    echo 
$fila["nombre_completo"];

Como se ve en el ejemplo debes referirte al nombre de la fila

Saludos
  #11 (permalink)  
Antiguo 25/06/2009, 15:42
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Tomar el último valor de un campo en la BD.

¿Hay alguna otra forma en que sólo use la variable? para poder estarle sumando 1 con el while.

EDIT: Ya pude resolver eso, simplemente guardé el contenedor en una variable.

Pero tengo otra duda, supongamos que en el archivo CSV tengo en la columna de clave algo así:

Código PHP:
clave
M
D
S
M
D
M

Y en la columna de la tabla de la BD donde voy a tomar el valor que mencioné allá arriba está así:

Código PHP:
llave
M1235123
D6456456
S3453453
D3423423
M2342344 
¿Cómo podría poner el código del INSERT, para que por ejemplo si en el archivo CSV la clave es M, sólo tome en cuenta los que empiezan con M, de los que están en la BD?

Saludos.

Última edición por Gaug; 25/06/2009 a las 15:50
  #12 (permalink)  
Antiguo 25/06/2009, 15:52
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Tomar el último valor de un campo en la BD.

No entiendo la pregunta!!!
Vas a insertar en la base de datos, debes tener en cuenta los que vienen en el archivo o no ?
  #13 (permalink)  
Antiguo 25/06/2009, 16:41
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Tomar el último valor de un campo en la BD.

EDIT: Ahora tengo este problema...


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like 'clave%' order by llave ASC limit 0,1' at line 1

Si pongo ésto:

Código PHP:
$sintaxis=$data[0]."%";
  
$query_Recordset "SELECT * from reg_obra like '".$sintaxis."' order by llave ASC limit 0,1"
'clave' es el valor de '$data[0]', lo he hecho antes y no me daba problemas el '%', ¿será porque es un array? ¿Cómo podría arreglar ésto?

Saludos.

Última edición por Gaug; 25/06/2009 a las 18:42
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 01:48.