Ver Mensaje Individual
  #17 (permalink)  
Antiguo 01/02/2015, 12:25
Avatar de Djoaq
Djoaq
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 6 meses
Puntos: 38
Respuesta: Problemas con valores que se repiten en array

bueno en primer lugar usa esta consulta :

Código MySQL:
Ver original
  1. GROUP_CONCAT(wp_postmeta.meta_value SEPARATOR '--') as 'datos'
  2. /** Cada vez q exista un valor wp_postmeta.meta al agrupar lo concatenamos!**/
  3. FROM wp_posts INNER JOIN wp_postmeta  
  4. WHERE wp_posts.post_type = 'product'  
  5. AND wp_posts.post_status = 'publish'
  6. AND wp_posts.ID = wp_postmeta.post_id  
  7. AND wp_postmeta.meta_key = 'total_sales'
  8. AND  wp_postmeta.value !='' /**Anulamos los espacios en blanco!**/
  9. GROUP BY wp_postmeta.value,wp_postmeta.post_id
  10. /** Con el group by meta value agrupamos && id y quitamos los que estan en blanco y nulos**/
  11.  
  12. GROUP_CONCAT(wp_postmeta.meta_value SEPARATOR '--') as 'datos'
  13. FROM wp_posts INNER JOIN wp_postmeta  
  14. WHERE wp_posts.post_type = 'product'  
  15. AND wp_posts.post_status = 'publish'
  16. AND wp_posts.ID = wp_postmeta.post_id  
  17. AND wp_postmeta.meta_key = '_stock'
  18. AND  wp_postmeta.value !='' /**Anulamos los espacios en blanco!**/
  19. GROUP BY wp_postmeta.value,wp_postmeta.post_id
  20. /** Con el group by meta value agrupamos && id y quitamos los que estan en blanco y nulos**/
  21.  
  22. GROUP_CONCAT(wp_postmeta.meta_value SEPARATOR '--') as 'datos'
  23. /**Concatenamos los valores con separado**/
  24. FROM wp_posts INNER JOIN wp_postmeta  
  25. WHERE wp_posts.post_type = 'product'  
  26. AND wp_posts.post_status = 'publish'
  27. AND wp_posts.ID = wp_postmeta.post_id  
  28. AND wp_postmeta.meta_key = '_product_attributes'
  29. AND  wp_postmeta.value !='' /**Anulamos los espacios en blanco!**/
  30. GROUP BY wp_postmeta.value,wp_postmeta.post_id
  31. /** Con el group by meta value agrupamos && id y quitamos los que estan en blanco y nulos**/

Y el php

Código PHP:
Ver original
  1. $resultado = $mysqli->query($consulta);
  2. if ($resultado->num_rows >=1) {
  3.    while ($fila = $resultado->fetch_assoc()) {
  4.    echo $fila['datos']."<br>";
  5.  
  6.                 }
  7.             }
  8. $resultado->free();

Luego si añadieras mas campos a la consulta :
Código MySQL:
Ver original
  1. GROUP_CONCAT(wp_postmeta.meta_value SEPARATOR '--') as 'datos',
  2. id,
  3. blaa..bla.. resto sql

Deberías generar y recorrer la matriz tal que así :
Código PHP:
Ver original
  1. $resultado = $mysqli->query($consulta);
  2. if ($resultado->num_rows >=1) {
  3.    while ($fila = $resultado->fetch_assoc()) {
  4.  
  5.     $matriz[$fila['id']] = $fila['datos']
  6.                 }
  7.             }
  8.  $resultado->free();  
  9. var_dump($matriz)//vemos la estructura de la matriz!
  10. foreach ($matriz['id'] as $key => $value) {
  11.         echo $key;
  12.         echo $value;
  13.         /**debería devolver id y value el valor datos !**/
  14. }

Todo lo que escribo es al vuelo sin comprobarlo ( tanto sql como php ) pero esto son ejemplos para que le pilles el tranquillo !

De todas formas.. me preocupa la lógica del modelo relacional que pretendes...
me da un poco de miedo que estemos pasando cosas por alto..

Lo guay sería tener un muestreo de la bd y que habláramos con calma que pretendes, tengo
miedo de que con las prisas vayas a ... ya me entiendes.. "liarla parda"!
Descripción de "liarla parda" : entregarle algo al cliente convencido de que funciona bien y que tenga errores graves de lógica que perjudiquen la actividad económica del cliente!

Si quieres mandarme un mp .. hablamos ( insisto en que mientras que el trabajo lo hagas tú este foro es gratis ! )

Un saludo!
:D