Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/07/2012, 09:32
luciana_uru
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 4 meses
Puntos: 1
Varios forearch a una misma consulta

Hola a todos, tengo un problemilla. es que quiro mostrar los ultimos post de cada categoria en el index, pero solamente lo logro haciendo varias consultas a la BD, pero consume mucho recursos. Quisiera saber si es posible, hacer distintos forearch a una misma consulta.

En este momento tengo esta consulta a la BD:

Código PHP:
//Consulta Posts Recientes
    
if($id == ''){

    
//Consulta de posts normales
    
$request=db_query("
        SELECT m.ID_MEMBER, m.ID_TOPIC, m.body, m.imgport, c.ID_CAT, subject, c.name, t.ID_BOARD, posterName, puntos, m.hiddenOption, posterTime, denuncias
        FROM {$db_prefix}messages as m, {$db_prefix}boards as c, {$db_prefix}topics as t
        WHERE c.ID_BOARD=m.ID_BOARD AND t.ID_TOPIC=m.ID_TOPIC AND t.isSticky = 0 {$cat_condition}


        ORDER BY m.ID_TOPIC DESC
        LIMIT $RegistrosAEmpezar,$limit_posts"
__FILE____LINE__);
    }else{
    
$request=db_query("
        SELECT m.ID_MEMBER, m.ID_TOPIC, m.body, m.imgport, c.ID_CAT, subject, c.name, t.ID_BOARD, posterName, puntos, m.hiddenOption, posterTime, denuncias
        FROM {$db_prefix}messages as m, {$db_prefix}boards as c, {$db_prefix}topics as t
        WHERE c.ID_BOARD=m.ID_BOARD AND t.ID_TOPIC=m.ID_TOPIC AND t.isSticky = 0 {$cat_condition}


        ORDER BY m.ID_TOPIC DESC
        LIMIT $RegistrosAEmpezar,$limit_posts"
__FILE____LINE__);
    }

       while(
$posts mysql_fetch_array($request))
    {


            
$context['normal_posts'][] = array(
            
'ID_MEMBER' => $posts['ID_MEMBER'],
            
'id' => $posts['ID_TOPIC'],
            
'body' => $posts['body'],
            
'imgport' => $posts['imgport'],
            
'title' => $posts['subject'],
            
'category' => $posts['name'],
            
'id_category' => $posts['ID_BOARD'],
            
'user' => $posts['posterName'],
            
'date' => $posts['posterTime'],
            
'puntos' => $posts['puntos'],
            
'denuncias' => $posts['denuncias'],

        );
    }

     
mysql_free_result($request); 
Donde con un forearch, muestro los ultimos post publicados en el sitio

Código PHP:
foreach ($context['normal_posts2'] as $np)
      {

        
$hcode = array(' ',',','?');
        
$bcode = array('-','-','-');
        
$titleurl2 str_replace($hcode$bcode$np['title']);

        echo
'<div id="fragment-'; if($cont2 <= 4) { echo $cont2;  ++$cont2;} echo'" class="ui-tabs-panel '; if($cont2 <= 2) { echo $cont2;  }else{ echo'ui-tabs-hide'; } echo'" >
            <img width="400"  src="'
,$np['imgport'],'" alt="',$np['title'],'" />
             <div class="info" >
                <a href="http://infokgeek.com/posts/'
$np['id'],'/'; echo $titleurl2; echo'.html" >'; echo substr($np['title'], 040); echo'...</a>
                <p>'
;echo
        
substr(bbcode($np['body']), 0110); echo'... </p>
             </div>
        </div>'
;

      } 
Lo que quiero hacer, como dije antes es hacer varios forearch a una misma consulta para mostrar los ultimos post de cada categoria. es esto posible? cualquier ayuda se agradeceria!! Saludos!