Foros del Web » Programando para Internet » PHP »

Ids separados por comas

Estas en el tema de Ids separados por comas en el foro de PHP en Foros del Web. Hola tengo en la base de datos ids guardados por comas, bién lo que quiero hacer es poderlos sacar uno por uno. Esto lo quiero ...
  #1 (permalink)  
Antiguo 10/11/2014, 02:43
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Ids separados por comas

Hola tengo en la base de datos ids guardados por comas, bién lo que quiero hacer es poderlos sacar uno por uno. Esto lo quiero conseguir con php.

Diganme ideas como como hacerlo para llevarlo a practica.

Saludos.
  #2 (permalink)  
Antiguo 10/11/2014, 02:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Ids separados por comas

Si $campo es el contenido del campo multivaluado con ids separados por comas

$arrCampo=explode(",",$campo);

$arrCampo es un array con los ids en sus nodos.


Tienes claro que ese campo multivaluado es un error de diseño.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 10/11/2014 a las 03:11
  #3 (permalink)  
Antiguo 10/11/2014, 02:49
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Ids separados por comas

Si el podelo separar no es problema pero a la hora de imprimir me da el ultimo y yo quiero capturar todos. Si no es la mejor forma, ¿cómo podria lograr esto?

Saludos.
  #4 (permalink)  
Antiguo 10/11/2014, 03:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Ids separados por comas

Código PHP:
Ver original
  1. echo "<pre>";
  2. print_r($arrCampo);
  3. echo "</pre>";

O cualquier otra forma de recorrer el contenido del array para imprimirlo.
O claro como no dices nada de como quieres imprimirlo

echo $campo

tambien te lo imprimira (1,3,5,6,7,8100,600....)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 10/11/2014, 03:25
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Ids separados por comas

Si como te e comentado antes a la hora de convertirlo en array y imprimirlo no hay problema, lo tengo de esta manera.

Código PHP:
Ver original
  1. $a = '1,2,3,4,5';
  2.  
  3. $b = explode(',', $a);
  4.    
  5. foreach($b as $c) {
  6.        
  7. echo $c;
  8.        
  9. }

El resultado sería: 12345

Pero a la hora de consultar a DB solo me da el ultimo, en este caso el 5 y quiero que me compruebe todos.

No sé si se me entiende.

Saludos.
  #6 (permalink)  
Antiguo 10/11/2014, 04:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Ids separados por comas

Muestra nos la estructura de la tabla y la consulta que usas para obtener los datos, si los id estan en un campo multivaluado, como se entiende en tu primer post

Cita:

Ids separados por comas


Hola tengo en la base de datos ids guardados por comas,...
es muy dificil obtener con una querry solo el último valor ....


$a = '1,2,3,4,5';

muestra como le das valor a $a
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #7 (permalink)  
Antiguo 10/11/2014, 05:25
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Ids separados por comas

La tabla sería:

CATEGORIAS
id - nombre
1 - ..........
2 - ..........
3 - ..........
4 - Mi categoria

SUBCATEGORIAS
id - nombre
1 - Subcategoria1
2 - Subcategoria2
3 - Subcategoria3

RESULTADO
id - categoria_id - subcategoria_id
1 - 4 - 1,2,3


Y la consulta la realizaria.

Compruebo categoria, resultado: $rs_cat['id'].

Ahora compruebo las subcategorias, resultado: $rs_subcat['id'].

Y finalmente saco el resultado:

Consulta: SELECT * FROM resultado WHERE categoria_id = $rs_cat['id']

Ahora si muestro datos el resultado seria, como cojeria categoria_id = 4, me mostraria que tiene las subcategorias 1,2,3.

Y ahora faltaria con esos ids decir los nombre de las subcategorias que sean para categoria 4 en este caso.

No se si me explicado bien, lo e echo asi por encima para aclarar un poco, pero si la idea de hacerlo no es correcta me gustaría también alguna idea de como conseguir esto.

EN RESUMEN: quiero decir y sacar los nombres de varios ids de un campo, seria como que la categoria es el patron y en ese paton tiene varias subcategorias.

Un saludo.
  #8 (permalink)  
Antiguo 10/11/2014, 05:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ids separados por comas

Tienes al menos dos problemas:
- El modelo de datos que tienes en esa tabla es completa y absolutamente erróneo. Representa una relación ed cardinalidad 1:N entre una categoría y sus subcategorías, pero estás creantdo para administrarla un campo multivaluado, lo que es un absoluto fallo del modelo relacional. Están prohibidos en ese tipo de esquema, y sólo sirven para generarte problemas en las consultas como los que estás teniendo.
- Partiendo del modelo mal construido que tienes se puede trabajar programáticamente. Pero desde el punto de vista de PHP, cada consulta única por subcategoría debería ir recopilando los sucesivos nombres de IDs encontrados de cada una para luego mostrarlas, pero no sabemos cómo lo estás haciendo. No posteas código PHP.

Mirando desde la optica de datos:
- Si cada subcategoría sólo puede pertenecer a una única categoría padre, es una relación 1:N, que requiere solamente un campo adicional, donde se ponga la FK que apunta a la categoría superior. Esto sería una relación padre-hijo, normal y muy usual, sin demasiadas dificultades para hacer la consulta, evitando campos multivaluados que no se necesitan y solo ensucian la base con datos inconsistentes (eventualmente).
- Si cada subcategoria puede serlo de más de una categoría padre, sería una relacion N:N, y se necesita obligatoriamente una tabla adicional que administre la relación. Con lo que el modelo que tienes no cumple ni por casualidad.

¿Cuál de las dos es?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 10/11/2014, 05:54
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Ids separados por comas

Lo que intento es una relación N:N, pero bueno visto de está manera tienes toda la razón antes que nada construire la estructura mejor para intentar llevar a cavo lo que quiero conseguir.

Saludos.
  #10 (permalink)  
Antiguo 10/11/2014, 05:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Ids separados por comas

Busca la solución para una relación N:M es de libro y veras que todo es mucho mas facil.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #11 (permalink)  
Antiguo 10/11/2014, 06:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ids separados por comas

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Lo que intento es una relación N:N, pero bueno visto de está manera tienes toda la razón antes que nada construire la estructura mejor para intentar llevar a cavo lo que quiero conseguir.

Saludos.
Te recomiendo entonces que primero resuelvas la estructura de datos (para eso estan los subforos de Bases de Datos), antes de intentar la implementación en PHP.
Resuelto el esquema de datos, las consultas y su uso en la aplicación se simplefican en muchos sentidos..
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: comas, ids
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:29.