Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] php y mysql varias catergorias para un mismo articulo

Estas en el tema de php y mysql varias catergorias para un mismo articulo en el foro de PHP en Foros del Web. trato de hacer lo que dice el titulo y por lo que pude averiguar hay 2 formas 1 introducir los valores separados por , y ...
  #1 (permalink)  
Antiguo 07/07/2016, 15:43
Avatar de madhatterdef  
Fecha de Ingreso: diciembre-2011
Ubicación: argentina
Mensajes: 213
Antigüedad: 12 años, 4 meses
Puntos: 59
php y mysql varias catergorias para un mismo articulo

trato de hacer lo que dice el titulo y por lo que pude averiguar hay 2 formas
1 introducir los valores separados por , y despues indicar que la "," separa categorias o 2 hacer 3 tablas 1 de articulos 1 de categorias y una intermediaria y segun entendi es mejor la ultima opcion en cuanto a la rapidez de busqueda

entonces lo que hice fue esto

tabla algoritmos
alg
id_algoritmo

tabla categoria
categoria
id_categoria

tabla algoritmo
id
id_algoritmo
id_categoria


y funciona en cierta forma por que puedo mostrar todos los articulos con sus categoria pero el problema que tengo es que el resultado es del tipo

alg1 categoria1
alg1 categoria2
alg2 categoria1
alg2 categoria2


y no se como hacer para que me de como resultado algo como esto
alg1 categoria 1 categoria 2
alg2 categoria 1 categoria 2

primera pregunta lo que intento es posible ?
segunda pregunta esto (si tiene solucion) es un problema del php o del sql ? es necesario el codigo completo para saberlo ?

cualquier sugerencia es bienvenida gracias
__________________
PD gracias por el karma
  #2 (permalink)  
Antiguo 08/07/2016, 01:53
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: php y mysql varias catergorias para un mismo articulo

Cita:
y funciona en cierta forma por que puedo mostrar todos los articulos con sus categoria pero el problema que tengo es que el resultado es del tipo

alg1 categoria1
alg1 categoria2
alg2 categoria1
alg2 categoria2


y no se como hacer para que me de como resultado algo como esto
alg1 categoria 1 categoria 2
alg2 categoria 1 categoria 2
Donde esta la diferencia? Yo veo el mismo resultado en los dos.

Saludos.
  #3 (permalink)  
Antiguo 08/07/2016, 07:44
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: php y mysql varias catergorias para un mismo articulo

Hay varias formas de resolver tu problema desde php, desde mysql o mixta.

Desde mysql podrías hacer una trasposicion. Puedes ver un ejemplo aquí.
Y añadir una subconsulta para extraer esos datos.

Desde php necesitarías hacer una primera consulta para extraer los algoritmos y luego por cada algoritmo hacer una nueva consulta para extraer todas las categorías.
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 08/07/2016, 10:25
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: php y mysql varias catergorias para un mismo articulo

Para mi tu problema está en la normalización de tus tablas,
Cuando dices:
Cita:
y no se como hacer para que me de como resultado algo como esto
alg1 categoria 1 categoria 2
alg2 categoria 1 categoria 2
te refieres a que alg1 es hijo de las categorías: Categoría 1 y Categoría 2?

Como ya te dijeron es posible incluso hacer que todo en una misma tabla con recursividad, pero considerando la eficacia que esto pudiera tener a futuro.
  #5 (permalink)  
Antiguo 08/07/2016, 12:21
Avatar de madhatterdef  
Fecha de Ingreso: diciembre-2011
Ubicación: argentina
Mensajes: 213
Antigüedad: 12 años, 4 meses
Puntos: 59
Respuesta: php y mysql varias catergorias para un mismo articulo

gracias a todos por responder.

MaNuX0218 la diferencia esta en que el primero muestra 1 registro por cada categoria asignada al elemento y el segundo el elemento y todas sus categorias a continuacion en un solo registro

xerifandtomas creo que tiene que ver con eso, voy a analizar bien ese ejemplo luego y te comento como me fue

wilmer30 si, eso mismo. alg1 es hijo de las categorias categoria 1 y categoria 2
__________________
PD gracias por el karma
  #6 (permalink)  
Antiguo 08/07/2016, 13:07
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: php y mysql varias catergorias para un mismo articulo

Pues la solución está en la mista tabla:

tabla algoritmo
id
id_algoritmo
id_categoria

Ahora si quieres que te slga en un solo registro el ag1, Catgeoria 1 y Categoría 2, ya es un tema de habilidad para mostrarla. Podrías hacer un algoritmo que cresca en columnas a la derecha, las columnas a la derecha crecerán al mismo número que las categorías.
  #7 (permalink)  
Antiguo 08/07/2016, 13:53
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: php y mysql varias catergorias para un mismo articulo

yo solo almacenaria en un campo en formato json las categorias de cada item, de esa manera al recuperar el campo las trabajaria con un foreach o lo que sea que necesites hacer con ellas luego, asi te evitas algunos dolor de cabeza, prieba a ver.

Yo hago eso en un carro de compras para almacenar que categorias de productos estan en promocion en una determinada fecha o rango de fechas y cuando el sistema va a cargar el producto, verifica ese campo y ve si esta en oferta o no y actua en consecuencia. Tambien utilizo el mismo metodo para establecer los permisos que tiene un usuario en el sistema y de esa manera se determina que opciones del menu se muestran y cuales no.
__________________
[email protected]
HITCEL
  #8 (permalink)  
Antiguo 08/07/2016, 14:46
Avatar de madhatterdef  
Fecha de Ingreso: diciembre-2011
Ubicación: argentina
Mensajes: 213
Antigüedad: 12 años, 4 meses
Puntos: 59
Respuesta: php y mysql varias catergorias para un mismo articulo

bueno les actualizo.
por lo que pude probar xerifandtomas la transposicion funcionaria aunque no logre entender como adaptarlo a mi sistema. voy a investigar un poco mas del tema

wilmer30
podrias explicarte mejor ?

xfxstudios
esa opcion no la habia contemplado, parece buena idea. lo voy a intentar
__________________
PD gracias por el karma
  #9 (permalink)  
Antiguo 08/07/2016, 16:45
Avatar de madhatterdef  
Fecha de Ingreso: diciembre-2011
Ubicación: argentina
Mensajes: 213
Antigüedad: 12 años, 4 meses
Puntos: 59
Respuesta: php y mysql varias catergorias para un mismo articulo

no puedo, todo lo que hago da el mismo resultado, intente de muchas formas y todo termina igual
solo me queda preguntar directamente con el codigo y ver en que me equivoco, ya que por mi mismo no pude lograrlo

a esas tablas que dije antes esta fue la primera consulta que les hice todo lo otro que intente dio el mismo resultado

SELECT algoritmos.alg , categorias.categoria FROM algoritmo INNER JOIN algoritmos ON algoritmo.id_algoritmo = algoritmos.id_algoritmo INNER JOIN categorias ON algoritmo.id_categoria = categorias.id_categoria

empiezo a creer que es el unico resultado que se puede obtener y que no es un error de de consulta (tal vez me equivoque)

el php

Código:
$query_execute =$mysqli->query("SELECT algoritmos.alg , categorias.categoria FROM algoritmo INNER JOIN algoritmos ON algoritmo.id_algoritmo = algoritmos.id_algoritmo INNER JOIN categorias ON algoritmo.id_categoria = categorias.id_categoria");

while ($result = $query_execute->fetch_array()) { 
$categoria = $result['categoria'];
$alg = $result['alg'];

echo'<table border="1"><tr> <td>'.$alg.'</td> <td> <img src="img/visualcube.php?fmt=svg&case='.$alg.'&view=plan"/> <td>'.$categoria.'</td> </tr>';}
echo '</table>';
gracias por la ayuda
__________________
PD gracias por el karma
  #10 (permalink)  
Antiguo 10/07/2016, 00:06
Avatar de madhatterdef  
Fecha de Ingreso: diciembre-2011
Ubicación: argentina
Mensajes: 213
Antigüedad: 12 años, 4 meses
Puntos: 59
Respuesta: php y mysql varias catergorias para un mismo articulo

lo resolvi, al parecer lo que buscaba era la funcion GROUP_CONCAT gracias a todos por la ayuda, daria el tema por terminado
__________________
PD gracias por el karma

Etiquetas: mysql, sql, tabla
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 17:00.