Foros del Web » Programando para Internet » PHP »

Ayuda con campo de ORDER BY

Estas en el tema de Ayuda con campo de ORDER BY en el foro de PHP en Foros del Web. lo que quiero hacer es mostrar los 5 nuevos autos agregados de una base de datos, pero es muy raro en la primera consulta si ...
  #1 (permalink)  
Antiguo 26/09/2006, 12:22
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 10 meses
Puntos: 1
Ayuda con campo de ORDER BY

lo que quiero hacer es mostrar los 5 nuevos autos agregados de una base de datos, pero es muy raro en la primera consulta si me sale todo bien , y en la segunda nada solo como si estuviera poniento "LIMIT 1" hay les dejo un ejemplo


en este ejemplo si me muestra los 5 autos
Código PHP:

$result 
= @ mysql_query("SELECT * FROM cars WHERE  activ='1'  order by date DESC LIMIT 5");
while (
$rowmysql_fetch_array($result)) {

      
$car_id $row["car_id"];
    
$make_id $row["make_id"];
    
$model $row["model"];
    
    echo
"$car_id  $model <br>"//aqui si me muestra por listados
    


Y en este otro solo un auto
Código PHP:
$sql "SELECT * FROM cars WHERE  activ='1'  order by date DESC LIMIT 5";
$result $db->query($sql);
$row $db->fetch($result);

    
$car_id $row["car_id"];
    
$make_id $row["make_id"];
    
$model $row["model"];
    
    echo
"$car_id $model <br>"//aqui solo me muestra la primera fila 
Si alguien me podria explicar a que se debe esto por favor.
  #2 (permalink)  
Antiguo 26/09/2006, 12:47
 
Fecha de Ingreso: julio-2005
Mensajes: 220
Antigüedad: 19 años, 3 meses
Puntos: 0
En el segundo no estas recorriendo el array, mientras que en el primero lo haces con el while. Por eso en el segundo solo te sale un solo valor, debes recorrer el array para mostrar todos.
  #3 (permalink)  
Antiguo 26/09/2006, 13:44
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 10 meses
Puntos: 1
gracias GORAK por responder, tienes toda la razon
pero aqui tengo otro problema
Código PHP:

$sql 
"SELECT * FROM cars WHERE  activ='1'  ORDER BY 'date' DESC LIMIT 5";
$result $db->query($sql);
$num2 $db->num($result);
if(
$num2 1) {
echo
"nada";
}else{
 while(
$row $db->fetch($result)) {
         
$car_id $row['car_id'];
         
$model $row['model'];
         
         
$template->add_block_vars("car", array(
                                    
'CAR_ID' => $car_id,
                                    
'MODEL' => $model)
                                    );
                                   
         }
    }     
$template->getFile(array(
                   
'index' => 'index.tpl')
);
$template->add_vars(array(
                )
);
$template->parse("index"); 
la funcion add_block_vars
Código PHP:
   function add_block_vars($blockname$vararray)
   {
      if(
strstr($blockname'.'))
      {
         
$blocks explode('.'$blockname);
         
$blockcount sizeof($blocks) - 1;
         
$str '$this->_tpldata';
         for(
$i 0$i $blockcount$i++)
     {
        
$str .= '[\'' $blocks[$i] . '.\']';
        eval(
'$lastiteration = sizeof(' $str ') - 1;');
        
$str .= '[' $lastiteration ']';
     }
     
$str .= '[\'' $blocks[$blockcount] . '.\'][] = $vararray;';
     eval(
$str);
      }
      else
      {
         
$this->_tpldata[$blockname '.'][] = $vararray;
      }
      return 
true;
   } 
pues aqui no me muestr nada cuando en index.tpl hago esto
Código PHP:
{car.CAR_ID}-{car.MODEL
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 12:18.