Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar 2 consultas SQL en un array y leerlo con foreach

Estas en el tema de Guardar 2 consultas SQL en un array y leerlo con foreach en el foro de PHP en Foros del Web. Buenas noches, estoy intentando agrupar en una variable la consulta a dos tablas sql, pero no consigo que esto funcione. Llevo horas probando y nada. ...
  #1 (permalink)  
Antiguo 28/01/2015, 14:54
Avatar de Josantonius  
Fecha de Ingreso: enero-2015
Mensajes: 15
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Guardar 2 consultas SQL en un array y leerlo con foreach

Buenas noches, estoy intentando agrupar en una variable la consulta a dos tablas sql, pero no consigo que esto funcione. Llevo horas probando y nada. OS agradecería que me orientarais un poco sobre como solucionarlo.

Código PHP:
$resultados mysql_query("SELECT wp_posts.ID,wp_posts.post_title,wp_posts.post_status,wp_postmeta.meta_value
FROM wp_posts INNER JOIN wp_postmeta
ON wp_posts.post_type = 'product' AND
ON wp_posts.post_status = 'publish') AND
ON wp_posts.ID = wp_postmeta.post_id) AND
ON wp_postmeta.meta_key = '_product_attributes')]"
);

while (
$eventos mysql_fetch_array($resultados)) { 

        
$datos_seleccionados[] = array(
        
'nombre' => $eventos['wp_posts.post_title'],
        
'status' => $eventos['wp_posts.post_status'],
        
'ID' => $eventos['wp_posts.ID']);
    }


$i 0;
foreach (
$datos_seleccionados as $eventos){
    
$i++;
    echo 
'ID ' $eventos['ID'] . ' NOMBRE: ' $eventos['nombre'] . ' STATUS: ' $eventos['status'] .  '<br>';

Gracias,

Un saludo.

Última edición por Josantonius; 28/01/2015 a las 14:57 Razón: Título cortado
  #2 (permalink)  
Antiguo 28/01/2015, 14:57
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: Guardar 2 consultas SQL en un array y leerlo con foreach

y el error es?
muestralo con or die(mysql_error()); en la query.
un buen truco es usar tablas temporales
  #3 (permalink)  
Antiguo 28/01/2015, 15:04
Avatar de Josantonius  
Fecha de Ingreso: enero-2015
Mensajes: 15
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Guardar 2 consultas SQL en un array y leerlo con foreach

Muchas gracias por tu rápida respuesta enlinea777.

El error que me da es el siguiente:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON wp_posts.post_status = 'publish') AND ON wp_posts.ID = wp_postmeta.post_id) A' at line 4

Código PHP:
$resultados mysql_query("SELECT wp_posts.ID,wp_posts.post_title,wp_posts.post_status,wp_postmeta.meta_value
FROM wp_posts INNER JOIN wp_postmeta
ON wp_posts.post_type = 'product' AND
ON wp_posts.post_status = 'publish') AND
ON wp_posts.ID = wp_postmeta.post_id) AND
ON wp_postmeta.meta_key = '_product_attributes')]"
) or die(mysql_error());


while (
$eventos mysql_fetch_array($resultados)) { 

        
$datos_seleccionados[] = array(
        
'nombre' => $eventos['wp_posts.post_title'],
        
'status' => $eventos['wp_posts.post_status'],
        
'ID' => $eventos['wp_posts.ID']);
    }


$i 0;
foreach (
$datos_seleccionados as $eventos){
    
$i++;
    echo 
'ID ' $eventos['ID'] . ' NOMBRE: ' $eventos['nombre'] . ' STATUS: ' $eventos['status'] .  '<br>';

  #4 (permalink)  
Antiguo 28/01/2015, 15:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar 2 consultas SQL en un array y leerlo con foreach

¿Si has notado que tienes AND seguidos de ON?

No creo que sea válido en términos de SQL, de hecho el error te está diciendo lo mismo.

Por favor revisa una referencia de SQL pues tu problema no tiene relación alguna entonces con código PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/01/2015, 15:47
Avatar de Josantonius  
Fecha de Ingreso: enero-2015
Mensajes: 15
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Guardar 2 consultas SQL en un array y leerlo con foreach

Gracias pateketrueke, no me había fijado en lo más simple.

Ya he conseguido hacerlo funcionar, pero noto que me ralentiza demasiado la carga de la página, ves algo raro en el php que pueda producir esto?

Código PHP:
$resultados mysql_query("SELECT wp_posts.ID,wp_posts.post_title,wp_posts.post_status,wp_postmeta.meta_value
FROM wp_posts INNER JOIN wp_postmeta
WHERE wp_posts.post_type = 'product' 
AND wp_posts.post_status = 'publish'
AND wp_posts.ID = wp_postmeta.post_id
AND wp_postmeta.meta_key = '_product_attributes'"
) or die(mysql_error());


while (
$eventos mysql_fetch_array($resultados)) { 

        
$datos_seleccionados[] = array(
        
'nombre' => $eventos['post_title'],
        
'status' => $eventos['post_status'],
        
'ID' => $eventos['ID']);
    }


$i 0;
foreach (
$datos_seleccionados as $eventos){
    
$i++;
    echo 
'ID ' $eventos['ID'] . ' NOMBRE: ' $eventos['nombre'] . ' STATUS: ' $eventos['status'] .  '<br>';

  #6 (permalink)  
Antiguo 28/01/2015, 15:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar 2 consultas SQL en un array y leerlo con foreach

Cita:
Ya he conseguido hacerlo funcionar, pero noto que me ralentiza demasiado la carga de la página, ves algo raro en el php que pueda producir esto?
¿Has intentado ejecutar la misma consulta manualmente y ver cuanto tarda?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/01/2015, 16:33
Avatar de Josantonius  
Fecha de Ingreso: enero-2015
Mensajes: 15
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Guardar 2 consultas SQL en un array y leerlo con foreach

La consulta la ejecuta en 0.0008.

Era problema del navegador, no tenía que ver con el código.

Todo solucionado, muchas gracias.

Saludos

Etiquetas: mysql, select, sql, tabla, variable
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:41.