Foros del Web » Programando para Internet » PHP »

Extraer varios valores un un campo mysql

Estas en el tema de Extraer varios valores un un campo mysql en el foro de PHP en Foros del Web. Aunque existe varios articulos sobre este tema no estan muy bien explicados o yo no he sabido buscar bien, el problema es el siguiente digamos ...
  #1 (permalink)  
Antiguo 24/08/2011, 11:45
Avatar de francisco93  
Fecha de Ingreso: julio-2011
Ubicación: Soy ciudadano del mundo, pero vivo en Canarias :)
Mensajes: 58
Antigüedad: 12 años, 9 meses
Puntos: 1
Extraer varios valores un un campo mysql

Aunque existe varios articulos sobre este tema no estan muy bien explicados o yo no he sabido buscar bien, el problema es el siguiente digamos que yo tengo una tabla mysql que se llama listado dentro de esta tengo
id id_user id_mensaje
1 2 '1,2,3,4'
o
id id_user id_mensaje
1 2 '1','2','3','4'

Como les sea mas facil o si tienen otra idea de como introducir los datos tambien bien el punto este yo realizo la consulta a la tabla y una vez realizada yo quiero que el php reconozca que 1,2,3 y 4 son diferentes valores y no uno solo la cuestion es como puedo hacer esto. Muchas gracias por adelantado y espero puedan ayudarme
  #2 (permalink)  
Antiguo 24/08/2011, 11:55
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Extraer varios valores un un campo mysql

Hola compa

mira lo que puedes hacer es cuando consultas el campo id_mensaje te muestra

1,2,3,4 ... Quieres separarlos? si es asi:

puedes hacer esto:

Código PHP:

$arr_id_mensaje 
'1,2,3,4';
$separador explode(",",$arr_id_mensaje);
echo 
$separador[0];
echo 
$separador[1];
echo 
$separador[2];
echo 
$separador[3]; 
Bueno asi es como entendi , o si te puedes explicar mejor sera mas facil
  #3 (permalink)  
Antiguo 24/08/2011, 11:59
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Extraer varios valores un un campo mysql

Hola que tal.

Te propongo que utilises 1,2,3

Ya que para separar ese tipo de cadena es muy fácil con explode

Ejemplo
Código PHP:
Ver original
  1. $var_datos = '1,2,3,4';
  2. $datos = explode(',', $var_datos);
  3. $numero_de_datos = count($datos);
  4.  
  5. for($i=0;$i<=$numero_de_datos - 1;$i++){
  6.     echo $datos[$i];
  7.     echo '<br>';
  8. }
  9.  
  10. /* resultado
  11. 1
  12. 2
  13. 3
  14. 4
  15. */

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 24/08/2011, 12:00
 
Fecha de Ingreso: abril-2005
Mensajes: 29
Antigüedad: 19 años
Puntos: 1
Respuesta: Extraer varios valores un un campo mysql

Buenas!

No se si te he entendido bien... pero te respondo por si és lo que preguntabas, sino reformula la pregunta explicándolo un poco mejor, o poniendo un ejemplo gráfico de que quieres conseguir, para saber que necesitas.

Si recuperas un campo con varios valores (como por ejemplo "1,2,3,4" puedes hacer un explode de este resultado, y obtener así un array con los diferentes valores. Quedaría tal que así:

(Si el array que te devuelve mysql es asociativo)
$id=$arrayMysql["id"];
$id_user=$arrayMysql["id_user"];
$id_mensaje=explode(",",$arrayMysql["id_mensaje"]); //Esto te daria un array, que en caso de recorrerlo te devolveria 1 2 3 y 4

(Si el array no es asociativo, simplemente cambia "id","id_user" y "id_mensaje" por 0, 1 y 2 respectivamente)

Otra manera de hacer esto en mysql, seria en vez de guardarlo todo en la misma línea, generar una por cada relación usuario/mensaje, quedaría de la siguiente forma:

id;id_user;id_mensaje(que pasa de TEXT a INT)
1;1;1
2;1;2
3;1;3
4;2;1
5;2;3

(El usuario 1 está relacionado con el mensaje 1,2 y 3, y el usuario 2 con el mensaje 1 y 3)

Espero que esto solucione tu duda.
Un saludo!!
  #5 (permalink)  
Antiguo 24/08/2011, 12:48
Avatar de francisco93  
Fecha de Ingreso: julio-2011
Ubicación: Soy ciudadano del mundo, pero vivo en Canarias :)
Mensajes: 58
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Extraer varios valores un un campo mysql

Gracias a los 3 con las dos primeras respuestas ya encontre la solucion muchas gracias a skiper0125 y a informacionsys la verdad una respuesta completa la otra creo con esto ya resolvi mi duda y espero le sirva a cualquiera que le pase lo mismo

Etiquetas: mysql, tabla, campos
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 11:09.