Foros del Web » Programando para Internet » PHP »

Mostrar registros unicos(distinct) aunque se dupliquen

Estas en el tema de Mostrar registros unicos(distinct) aunque se dupliquen en el foro de PHP en Foros del Web. Buenas tardes a todos. Quisiera saber como puede obtener registros no repetidos aplicando distinct, aca les explico mejor. En una tabla cesta tengo estos datos ...
  #1 (permalink)  
Antiguo 03/01/2008, 15:17
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Mostrar registros unicos(distinct) aunque se dupliquen

Buenas tardes a todos.

Quisiera saber como puede obtener registros no repetidos aplicando distinct, aca les explico mejor.

En una tabla cesta tengo estos datos

codi_artic| id_color| id_talla| cantidad

10..............5.......................3......... ...2
10..............5.......................5......... ...4
10..............5.......................6......... ...4
10..............5.......................9......... ...2
10..............8.......................3......... ...2
10..............8.......................5......... ...4
10..............8.......................6......... ...4
10..............8.......................9......... ...2

Como ustedes veran hay varias filas que tienen el mismo codigo codi_arti (10) con id_color(5 y 8)
Yo solamene necesito obtener una unica fila aplicando distint, es decir,

codi_artic| id_color
10..............5
10..............8

Usando php ontengo solamente 1 fila
Pero mi problema radica que tanto el codi_artic como el id color son variables que recogo de un formulario y la consulta lo hago bajo estas varibles, es decir,

Código PHP:
$SQL_colores_grabados "SELECT distinct id_color, codi_artic
                          FROM cesta  
                          WHERE codi_artic = $var_id_prenda AND
 id_color = $var_id_color"
;             

$colores_grabados=$bd->bbdd_query($SQL_colores_grabados);

echo 
"Grabados : ".$bd->bbdd_num($colores_grabados). 
Y cuando imprimo el echo me sale solo 1 resultado.

Como se puede realizar esto de tal manera poder obtener esas dos filas.

Pero que pasa si en la tabla cesta el codi_artic es el mismo(10) pero las id_prendas(5 y 8), el cliente despues pueda añadir un color mas o dos colores, es decir en vez de 5 y 8 ahora se añadirian las prendas 9 y 13 en total serian 5, 8, 9 y 13.

Estuve buscando por google y foros, y lei que dentro de la consulta se debe concatenar con un while o un for (Esto nunca lo he hecho). Ha ver si alguien me pudiera ayudar con esto.

Gracias y saludos a todos
  #2 (permalink)  
Antiguo 03/01/2008, 15:22
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: Mostrar registros unicos(distinct) aunque se dupliquen

Hola puedes imprimir tu resultado con print_r(), en lugar de con echo.

Algo así:

Código:
print_r($colores_grabados);
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 03/01/2008, 15:36
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Mostrar registros unicos(distinct) aunque se dupliquen

mira no estoy seguro pero prueba colocarle comillas simples..

$SQL_colores_grabados = "SELECT distinct id_color, codi_artic
FROM cesta
WHERE codi_artic = $var_id_prenda AND
id_color = '$var_id_color'";

Espero te sirva..

salu2..!!

Última edición por agressor; 03/01/2008 a las 15:36 Razón: Faltaba detalles..
  #4 (permalink)  
Antiguo 03/01/2008, 16:06
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Mostrar registros unicos(distinct) aunque se dupliquen

A ver, la respuesta era tan sencilla, que hasta yo me lie un poco, puede ser que el cerebro en ese momento se me haya nublado, despues de estar programando, la respuesta era esta

$SQL_colores_grabados = "SELECT distinct id_color, codi_artic FROM cesta WHERE codi_artic = $var_id_prenda";

Aca obtengo para mi caso solo dos registros como lo queria y segun la cantidad que exista en la tabla, me puede arrojar la cantidad que haya de colores para esa codigo de prenda.

Bueno, son cosas de los programadores que podemos estar metidos horas y horas dando vuelta al problema que al final es algo muy sencillo como me paso a mi.


Gracias y saludos a todos
  #5 (permalink)  
Antiguo 03/01/2008, 16:08
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Re: Mostrar registros unicos(distinct) aunque se dupliquen

y si en la sentencia de SQL utilizas

SELECT distinct id_color, codi_artic
FROM cesta
WHERE codi_artic = $var_id_prenda AND id_color in ($var_id_color)


Hize una prueba con una tabla que llene con los datos que pusiste y ejecute este SQL:

SELECT distinct id_color, codi_artic
FROM cesta
WHERE codi_artic = $var_id_prenda AND id_color in (5,8)


Yo hice la prueba en SQL server, no se que base de datos estaras usando
  #6 (permalink)  
Antiguo 30/01/2008, 15:45
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Mostrar registros unicos(distinct) aunque se dupliquen

Hola, tengo un problema que no puedo resolver y espero puedas darme una mano.

Tengo una tabla con 5 campos:
id_agentes
nombre
ciudad
telefono
email

Todos los datos son distintos excepto ciudad (algunos agentes están en la misma ciudad) el tema es que no quiero que el campo ciudad se repita con cada agente. Quiero que salga así:

Mar del Plata
agente 1
agente 2
agente 3

Necochea
Agente 1
Agente 2

etc.

Ya usé DISTINCT y GROUP BY pero al hacerlo solo me muestra sin repetir el campo ciudad, PERO NO los demás datos, o sea los agentes de cada ciudad con sus datos.
hasta he probado con 2 tablas (ciudades y agentes) pero nada.

Muchas gracias
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 15:58.