Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Obtener el valor maximo

Estas en el tema de Obtener el valor maximo en el foro de Mysql en Foros del Web. Hola gente, una consulta. Tengo una tabla llamada perfiles,los campos son: perfil_id usuario_id usuario_edad usuario_pais usuario_provincia usuario_msn usuario_skype usuario_facebook usuario_twitter Quiero hacer una consulta que ...
  #1 (permalink)  
Antiguo 06/09/2012, 22:18
 
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 12 años, 3 meses
Puntos: 0
Obtener el valor maximo

Hola gente, una consulta.
Tengo una tabla llamada perfiles,los campos son:

perfil_id
usuario_id
usuario_edad
usuario_pais
usuario_provincia
usuario_msn
usuario_skype
usuario_facebook
usuario_twitter

Quiero hacer una consulta que me devuelva el perfil_id maximo de un usuario_id determinado
Mi codigo es el siguiente:

$id_perfil_consulta = mysql_query("SELECT max(perfil_id) FROM perfiles WHERE usuario_id='$id' ", $cnx);
$id_max = mysql_fetch_assoc($id_perfil_consulta);

Pero no funca =(

Muchas gracias!
  #2 (permalink)  
Antiguo 07/09/2012, 00:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Obtener el valor maximo

Aquí falla algo y no es solo la consulta. Si usuario_id es valor único en esa tabla, es decir, no se repite en esa tabla, lo que buscas en un solo valor de perfil_id y te bastará con esto
SELECT perfil_id FROM perfiles WHERE usuario_id=@id
pues solo habrá un perfil_id para ese usuario_id

Danos un ejemplo de los valores para que nos hagamos una idea de lo que quieres hacer exactamente.

Si un usuario puede tener varios perfiles (el actual y los históricos) y el que buscas es el último, el actual, el problema es la estructura de la base. Ese campo de perfil debería ir en otra tabla con los campos idperfil_usuario| fecha| perfil | id_usuario
o algo así.

(he quitado el código PHP: en este foro no está permitido escribir código de programación).
  #3 (permalink)  
Antiguo 07/09/2012, 07:37
 
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Obtener el valor maximo

Hola gracias por responder!!
Te cuento.
Tengo una tabla usuarios (que es para que se registren) y otra tabla perfiles (con los campos que puse en el primer mensaje)

Lo que quiero hacer es que el usuario actualize el perfil. Probe con un UPDATE pero la primera ves que ingresa registros estos no aparecen. Con un INSERT se insertan bien los datos pero me crea muchos perfile_id con el mismo usuario_id.

Usando un INSERT, lo que yo queria hacer es mostrar en pantalla el ultimo perfil ingresado, osea el ultimo perfil_id.

Tambien tenia pensado tomar el ultimo valor de perfil_id del usuario y borrar los perfil_id de ese usario que sean menores al ultimo ingresado.

Me explico?? es muy rebuscada esa forma?? se puede hacer mas sencillo?

Gracias!!!

Última edición por LSkynyrd79; 07/09/2012 a las 08:34
  #4 (permalink)  
Antiguo 07/09/2012, 09:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Obtener el valor maximo

Creo que la estructura no es buena. Me explicaré:
Si un usuario solo puede tener un perfil, te sobra la tabla perfiles completa. En la tabla usuarios añades los campos
usuario_id
usuario_clave
usuario_edad
usuario_pais
usuario_provincia
usuario_msn
usuario_skype
usuario_facebook
usuario_twitter
En realidad, el perfil son todos esos campos. Si el usuario quiere cambiar algo en el perfil, es decir, en cualquiera de esos campos, tras introducir su clave para acceder, le bastará con hacer UPDATE de los campos cuyos contenidos desee actualizar. Y ya está. Solo habrá un perfil. Cosa distinta es que tú quieras guardar un histórico de sus antiguos perfiles.
  #5 (permalink)  
Antiguo 07/09/2012, 09:51
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 12 años, 3 meses
Puntos: 21
Respuesta: Obtener el valor maximo

A mi se me ocurre esta sentencia
Código MySQL:
Ver original
  1. SELECT perfil_id
  2. FROM perfiles
  3. WHERE usuario_id='$id'
  4. AND perfil_id>=(SELECT perfil_id FROM perfiles WHERE usuario_id='$id')
Posiblemente funcione aunque con una gran cantidad de registros podría resultar algo lenta por la subconsulta. Espero que le sirva.
__________________
>> Blog de desarrollo web.
>> @antoniopol06 amante de la Web =D
  #6 (permalink)  
Antiguo 07/09/2012, 12:32
 
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Obtener el valor maximo

Muchas gracias a todos, ya pude solucionarlo. Evidentemente estaba mal esctructurada la bd. Eso es algo que aun me cuesta pensarlo y estructurarlo.

Gracias nuevamente!

Etiquetas: maximo, select, sql, tabla, campos
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 13:50.