Foros del Web » Programando para Internet » PHP »

SOL: Consulta MySQL

Estas en el tema de SOL: Consulta MySQL en el foro de PHP en Foros del Web. Hola, Quiero realizar una consulta en la base de datos en la que se muestre el último registro de cada una de mis categorias. Es ...
  #1 (permalink)  
Antiguo 09/08/2004, 11:30
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
SOL: Consulta MySQL

Hola,

Quiero realizar una consulta en la base de datos en la que se muestre el último registro de cada una de mis categorias. Es decir, tengo artículos que se introducen con una columna "catid" y quiero que se muestres el último registro del catid 29, catid 30.... catid36. ¿Cómo puedo hacerlo?

Asias ;)
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante

Última edición por SimDalom; 09/08/2004 a las 13:37
  #2 (permalink)  
Antiguo 09/08/2004, 11:34
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
De acuerdo

Hola en mysql existe una funcion que te dice el numero de registros afectados por la consulta ya no recuerdo cual si mysql_num_rows o algo asi , la idea es hacer un ciclo en donde el numero de registro se = al ultimo , no se si me haya explicado.

espero te sirva.
  #3 (permalink)  
Antiguo 09/08/2004, 11:36
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
un poco más concreto please :(
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #4 (permalink)  
Antiguo 09/08/2004, 11:43
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
si por ejemplo :

$sql ="Select * from Empleados where Nombre = 'Miguel'"

con esto me despliega todos los empleados que se llamen Miguel

ahora la funcion mysql_num_rows me indica cuantos fueron los registros afectados por la consulta

digamos esto:

$registros = mysql_num_rows($sql)

digamos que es 10

no se si me haya explicado mejor
  #5 (permalink)  
Antiguo 09/08/2004, 11:47
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
creo que el que no me he explicado bien soy yo. Sigo a partir de tu ejemplo. Quiero que me aparezca el registro del último miguel, del último juan, del último pepe...
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #6 (permalink)  
Antiguo 09/08/2004, 11:49
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Pues suponiendo que cada registro tiene un id que se va incrementando. Para recoger el último sería así

select * from tabla where catid=32 order by id desc limit 1
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 09/08/2004, 11:52
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 23 años, 3 meses
Puntos: 9
checa bien esto a ver si te sirve: http://mx2.php.net/manual/es/functio...-insert-id.php
  #8 (permalink)  
Antiguo 09/08/2004, 11:52
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
no el id es otro campo que se va incrementando, yo quiero que otro campo que sí se repite muestre el último de cada uno de esos registros.
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #9 (permalink)  
Antiguo 09/08/2004, 12:01
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Pero para sacar el último tendrás que ordenar por algo que sea diferente. Imaginate una tabla alumnos que tiene tu campo catid y después nombre y apellidos. Aunque creo que mysql internamente al hacer un select te lo devuelve por orden de inserción no creo que hacerlo así sea muy fiable. Lo mejor sería añadir un campo más, por ejemplo id que fuera autoincremental.

Entonces para sacar el último registro sería como te he dicho anntes.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #10 (permalink)  
Antiguo 09/08/2004, 12:10
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
lo que puedes hacer es un arreglo de lo que quieres que te recupere por ejemplo:

$miarreglo = array("Miguel","Pepe","Juan")

foreach ($miarreglo as $nombre){

$sql = "Select * from EMpleados where Nombre = '$nombre' "
$num_registros = mysql_num_rows($sql)


}

no se si ya te haya quedado mas claro jeje mira lo que puse es solo para saber el numero de registros afectados por tu consulta depues tendras que hacer un ciclo y hacer una comparacion digamos con un contador para igualar con tu $num_registros si es igual pues imprime el dato
  #11 (permalink)  
Antiguo 09/08/2004, 12:11
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
Que trabajito me está costando resolver esta duda... Madre mía.

Voy a explicar el tema lo mejor que pueda a ver si me aclaro y os ayuda.

Tengo una tabla con varios campos, uno de ellos es id (esta es la clave y se autoincrementa) también tiene el campo catid (este indica la categoria a la que corresponde el artículo) y luego title (que es el que quiero mostrar).

Pues bien yo quiero hacer una consulta que me devuelva el último title de las catid 29, 30, 31 - 36.

Está así más claro???

perdonad el coñazo.... ;)
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #12 (permalink)  
Antiguo 09/08/2004, 12:13
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
ok, vale creo que con lo de lado2 y payo me aclaro... gracias
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #13 (permalink)  
Antiguo 09/08/2004, 12:26
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Siento ser pesado pero creo que mi solución es la que usualmente se utiliza.

select title from tabla where catid=36 order by id desc limit 1

Si lo que quieres es sacar el último de todas esas categorias lo metes en un bucle for donde vas sacando el último de cada una.

Código PHP:
<? 
$titles
=array();
for (
$catid=29;$catid<=36;$catid++){
$query="select title from tabla where catid=$catid order by id desc limit 1";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
$titles['$catid']=$row["title"];
}
?>
y en el array tiene todos los últimos titles.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #14 (permalink)  
Antiguo 09/08/2004, 12:33
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
creo que lo que muestra living esta muy claro podrias checarlo y ya nos dices si solucionaste el problema.

saludos
  #15 (permalink)  
Antiguo 09/08/2004, 13:13
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
:( error

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /********************/+++.php on line 6
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #16 (permalink)  
Antiguo 09/08/2004, 13:24
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Lo primero que he de decirte es que cambies esto (me había equivocado)
Código PHP:
$titles['$catid'
por esto
Código PHP:
$titles["$catid"
y para saber el error que te está dando ¿podrías poner echo mysql_error(); debajo del mysql_query y pegarnos el error que te da?

Código PHP:
$result=mysql_query($query);
echo 
mysql_error(); 
__________________
¿Te apasiona el mundo del guión? El portal del guión

Última edición por living; 09/08/2004 a las 13:26
  #17 (permalink)  
Antiguo 09/08/2004, 13:36
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 23 años
Puntos: 0
Muchísimas gracias :)
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
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 14:10.