Foros del Web » Programando para Internet » PHP »

Seleccionar un registro por cada categoría

Estas en el tema de Seleccionar un registro por cada categoría en el foro de PHP en Foros del Web. Hola! a ver, he estado pariendo con esto, pero al parecer, muy tonto aún para grandes hazañas ;) Estoy haciendo una fotogalería y quiero hacer ...
  #1 (permalink)  
Antiguo 01/09/2002, 03:20
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 22 años, 6 meses
Puntos: 59
Seleccionar un registro por cada categoría

Hola! a ver, he estado pariendo con esto, pero al parecer, muy tonto aún para grandes hazañas ;)

Estoy haciendo una fotogalería y quiero hacer una 'página de inicio' donde muestre una foto de cada categoría.
Quiero seleccionar un solo registro de cada categoría, tengo la tabla con las categorias y tengo la tabla de las imagenes con el campo de categoría en ellas...

Traté con esto, pero me da un error del coño de grande:
Código:
$query_select = "select wakk_gallery.imagen, wakk_gallery_cat.categoria CategoryName where wakk_gallery.categoria = wakk_gallery_cat.categoria group by  CategoryName";
Las tablas:
wakk_gallery: imagen, categoria
wakk_gallery_cat: categoria descripcion

Alguna sugerencia?
  #2 (permalink)  
Antiguo 01/09/2002, 10:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Seleccionar un registro por cada categoría

mm te falto el FROM tabla(s) ... no?

$query_select = "select wakk_gallery.imagen, wakk_gallery_cat.categoria FROM wakk_gallery,wakk_gallery_cat WHERE wakk_gallery.categoria = wakk_gallery_cat.categoria LIMIT 1";

mas o menos seria así .. si no va ¬¬ jeje no lo he probado ..

El LIMI a 1 .. te puede imaginar q es para q solo muestre 1 resultado .. de la consulta .. si fuera una imagen en concreo de cada galeria tendrias q hacer un AND tabla.campo='algo' .. tipico ...

Un saludo,
  #3 (permalink)  
Antiguo 01/09/2002, 12:38
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 22 años, 6 meses
Puntos: 59
Re: Seleccionar un registro por cada categoría

Cluster!! cool!
pero oye, en el resultado, me imprime dos de la misma categoría si aumento el 'LIMIT', la verdad, no entiendo nada!

<a href='ir.asp?http://www.artreves.com/wakk/photo/' target='_blank'>http://www.artreves.com/wakk/photo/...</a>
Allí puedes ver, la segunda frase es la categoría (weee, PHOTOS, etc)
Y el select actual va así:

Código:
$query_select = &quot;select wakk_gallery.imagen, wakk_gallery_cat.categoria FROM wakk_gallery,wakk_gallery_cat WHERE wakk_gallery.categoria = wakk_gallery_cat.categoria LIMIT 5&quot;;
<div style="color:#000;font-family:Verdana;font-size:10px;">Wakkos<br><a href="http://www.artreves.com/wakk/clickcount/clic.php3?url=www.artreves.com/wakk/index.php" style="font-size:9px;color:#e1470b;">follow the white rabbit</a></div>
  #4 (permalink)  
Antiguo 01/09/2002, 17:28
Avatar de El Menda  
Fecha de Ingreso: junio-2001
Ubicación: Jaén
Mensajes: 516
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Seleccionar un registro por cada categoría

Hola. Si quieres poner una de cada seccion utiliza la funcion DISTINCT.
ejemplo:
$sql = &quot;SELECT DISTINCT categoria FROM tienda WHERE tmp=1&quot;;
Eso me va a dar como resultado una categoria cada vez distinta.
Venga, espero q t sirva

<a href="http://skatextreme.metropoliglobal.com/" target="new">No sabes lo que te pierdes</a>
El Menda no te ayuda
  #5 (permalink)  
Antiguo 02/09/2002, 05:38
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 22 años, 6 meses
Puntos: 59
Re: Seleccionar un registro por cada categoría

Okie dokye!

Lo arreglé con esto:
[CODE]
$query_select = &quot;select wakk_gallery.imagen, wakk_gallery_cat.categoria, wakk_gallery_cat.descripcion FROM wakk_gallery,wakk_gallery_cat WHERE wakk_gallery.categoria = wakk_gallery_cat.categoria group by wakk_gallery_cat.categoria&quot;;
[code]

Pero ahora tengo un problemilla y no se si es un problemilla de PHP o del puto explorador:

Cuando agarro la columna 1 ($row[1]) es la categoría, la categoría es 'multipalabra' osea:
Soria Verano 2002
Soria Invierno 20002-2003

Y cuando mando el url:
[code]&lt;a ref=show.php?cat=&quot;.$row[1].&quot;&gt;$row[1].&quot;&lt;/a&gt;

El explorador muestra:
Código:
/show.php?cat=Soria%20Invierno%202001-2002
Sustituye los espacios en blanco por los respectivos %20 y no se si es eso lo que me jode el DB query, creo que si, ya que cuando le quito el WHERE categoria = $cat sale muy bien (claro, salen TODAS las fotos y quiero que salgan solo las de las categorias)

REcuerden que el query con el que pido las categorías, me da resultados de la tabla imagenes! por lo que no puedo jugar con el ID de las categorias!

Alguna sugenrencia? &gt;(de nuevo! )

Gracias de antemano!!!

<div style="color:#000;font-family:Verdana;font-size:10px;">Wakkos<br><a href="http://www.artreves.com/wakk/clickcount/clic.php3?url=www.artreves.com/wakk/index.php" style="font-size:9px;color:#e1470b;">follow the white rabbit</a></div>
  #6 (permalink)  
Antiguo 02/09/2002, 07:11
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 22 años, 6 meses
Puntos: 59
Re: Seleccionar un registro por cada categoría

Nah, no creo que el error sea ese, acabo de crear una categoría con una palabra única e igual da error pero en el query.


Pero no deja de ser raro:
Código:
$query_select = &quot;select * from wakk_gallery where categoria = &quot; . $cat . &quot; &quot;;
$result_select = mysql_query($query_select, $link) or die (&quot;error ejecutando el query&quot;);
E imprime &quot;error ejecutando el query&quot;

Sigo investigando, pero si alguien ve el error, please! =)

<div style="color:#000;font-family:Verdana;font-size:10px;">Wakkos<br><a href="http://www.artreves.com/wakk/clickcount/clic.php3?url=www.artreves.com/wakk/index.php" style="font-size:9px;color:#e1470b;">follow the white rabbit</a></div>
  #7 (permalink)  
Antiguo 02/09/2002, 08:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Seleccionar un registro por cada categoría

Pocas veces (o ninguna?) veo concatenacion para una sentencia SQL ..

Lo típico es hacer:
$query_select = &quot;select * from wakk_gallery where categoria ='$cat'&quot;;

Pruebalo y nos cuentas .. y.. bueno asegurate q $cat exite como campo &quot;categoria en la tabla wakk_galley ...

Con respecto a los espacios .. y % eso sucede porque automaticamente tu servidor HTTP (Apache?) hace un URLencode de lo que le mandas en un link .. Si tubieras problemas . .usa urldecode() y/o urlencode.

Un saludo,
  #8 (permalink)  
Antiguo 03/09/2002, 02:28
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 22 años, 6 meses
Puntos: 59
Re: Seleccionar un registro por cada categoría

Puta sintaxis.....
Que como me fue? Bien!
despues de ayudar alguno de ustedes, todo va bien siempre!

Ahora ando con una duda, y no creo que abrir otro post lo valga:

Cuando muestro las imágenes en grande, quiero hacer que tengan para 'next' y 'back' así poder pasar imagenes grandes sin tener que volver al indice de la categoría.

Logro hacer el back next con $next = $id + 1
Pero aún no sé como hacer para que vea si es la última o la primera, además, me gustaría que navegara sólo por la categoría que estoy mostrando!

Por que claro, con el $ID - 1 no habrá distinción de categoría.....

la url? <a href='ir.asp?http://www.artreves.com/wakk/photo' target='_blank'>http://www.artreves.com/wakk/photo...</a>

<div style="color:#000;font-family:Verdana;font-size:10px;">Wakkos<br><a href="http://www.artreves.com/wakk/clickcount/clic.php3?url=www.artreves.com/wakk/index.php" style="font-size:9px;color:#e1470b;">follow the white rabbit</a></div>
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 06:39.