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

Duda creando una consulta...

Estas en el tema de Duda creando una consulta... en el foro de Mysql en Foros del Web. saludos! Buen dia, me encuentro con una dudota. tengo esta consulta: Código PHP: SELECT tabart . art_ID ,       tabart . art_Titulo ,       tabart . ...
  #1 (permalink)  
Antiguo 01/09/2010, 21:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Duda creando una consulta...

saludos!

Buen dia, me encuentro con una dudota.

tengo esta consulta:

Código PHP:
SELECT tabart.art_ID
    
tabart.art_Titulo
    
tabart.art_Foto
    
tabart.art_Contenido
    
tabart.art_Portada
    
tabart.art_Video
    
tabart.art_Galeria
FROM tabart
portada
WHERE tabart
.art_Portada IN('6','7','8','9','10','11','12','13')
ORDER BY tabart.art_Portada and art_ID DESC limit 0,
Lo que hace esta consulta actualmente, es tomar todos los registros de la base de datos que tienen art_Portada 6... luego que son 7... y asi se va... lo malo es que toma todos los de la base de datos, y eso no es lo que necesito...

necesito que tome solo el ultimo registro que tenga art_Portada = 6, luego uno que tenga art_Portada = 7 asi... hasta que llegue a 13... se puede?

Un saludo y gracias!!
  #2 (permalink)  
Antiguo 01/09/2010, 21:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Duda creando una consulta...

pregunta...
para que llamas también la tabla portada? No veo que la anides en la consulta y tampoco que llames ningún campo de esta tabla.

saludos egemkun
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 01/09/2010, 22:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda creando una consulta...

Edito.
Al quitar la tabla "portada" ya me muestra unicamente uno de cada uno...

Pero desordenados :S...

no hay forma que salgan en orden (asi de 6,7,8,9,10,11....)

SELECT tabart.art_ID,
tabart.art_Titulo,
tabart.art_Foto,
tabart.art_Contenido,
tabart.art_Portada,
tabart.art_Video,
tabart.art_Galeria
FROM tabart
WHERE tabart.art_Portada IN('6','7','8','9','10','11','12','13')
ORDER BY tabart.art_Portada and art_ID DESC limit 0,7

script actualizado....

Última edición por EgEmKun; 01/09/2010 a las 22:58
  #4 (permalink)  
Antiguo 02/09/2010, 03:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Duda creando una consulta...

Por lo pronto, el ORDER BY está mal escrito (los campos se separan con comas):

Código MySQL:
Ver original
  1. SELECT tabart.art_ID,
  2.       art_Titulo,
  3.       art_Foto,
  4.       art_Contenido,
  5.       art_Portada,
  6.       art_Video,
  7.       art_Galeria
  8.       tabart
  9.       art_Portada IN('6','7','8','9','10','11','12','13')
  10.       art_Portada DESC
  11. LIMIT 0,7

- Además, si art_ID DESC es autoincremental o PK , es irrelevante para este ordenamiento. Lo único que hace es molestar.
- Si llamas una sola tabla, no es necesario que la indiques en el SELECT. En todo caso si lo haces, trata de usar alias en la tabla para evitar errores de tipeo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 02/09/2010, 09:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda creando una consulta...

Gracias.
La query la realice con el Navicat (un programa que deseaba que me ayudara) pero efectivamente no es necesario mostrar tabla.nombredelvalor todo el tiempo.

actualize el script:

SELECT art_ID, art_Titulo, art_Foto, art_Contenido, art_Portada, art_Video, art_Galeria FROM tabart WHERE art_Portada IN('6','7','8','9','10','11','12','13') ORDER BY art_ID, art_Portada limit 0,7

el resultado fue el mismo. Tienes razon, colocar "desc" no ayuda en nada....

Ya quite el art_Portada del ORDER, y pues orden todo por el art_ID, el art_ID es autoincremental, pero el art_Portada no.......

Sigh =/ ....


Si no se puede no habria una forma de hacerlo con php?...

Digo, si no se puede con mysql -_-

un saludo.
  #6 (permalink)  
Antiguo 02/09/2010, 09:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Duda creando una consulta...

Mira este post
http://www.forosdelweb.com/f86/resul...imaria-775121/

Con la función order by field lo puedes hacer.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 02/09/2010, 10:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Duda creando una consulta...

mmmm ... -_-

Código PHP:
SELECT art_IDart_Tituloart_Fotoart_Contenidoart_Portadaart_Videoart_Galeria FROM tabart WHERE art_Portada IN('6','7','8','9','10','11','12','13'ORDER BY FIELD(art_Portada678910111213), art_ID desc limit 0,
haciendo esto, toma TODOS los registros que tengan 6 en art_Portada, luego TODOS los registros que tengan 7 en art_Portada....

Eso no es lo que necesito -_-

quitando art_ID del "Order"

Código PHP:
SELECT art_IDart_Tituloart_Fotoart_Contenidoart_Portadaart_Videoart_Galeria FROM tabart WHERE art_Portada IN('6','7','8','9','10','11','12','13'ORDER BY FIELD(art_Portada678910111213desc limit 0,
Mismo resultado pero en order inverso (primero todos los 13... y para atras)

Ahora me estoy dando cuenta que quiza todo esto lo estoy llevando por un mal camino....

Lo que pasa es que cada valor de art_Portada, representa cada uno de los lugares dentro de un area de la pagina que estoy desarrollando...

Digamos...

6

7

8

9

10

11

12

13

Entonces, lo que necesito es seleccionar la ultima nota que se haya colocado en esa area (Digamos, seleccionar la ultima nota que se puso en art_Portada = 6) para que esa aparezca en la pagina.

Creo que eso no lo podre hacer solo con Mysql vdd... =/?

Gracias!

Etiquetas: Ninguno
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 03:26.