2013-02-15 3 views
0

Я пытаюсь установить запрос, который отображает всех пользователей моего сайта, которым меньше 25 лет, в зависимости от возраста, который находится в моей таблице ptb_stats.user_age. Я установил интервал -25 лет, но он не работает так, как я ожидаю. Что я делаю не так?Сортировка пользователей по возрастным группам с использованием PHP и MySQL?

Моя функция:

function categories_agegroup_under25() { 
      global $connection; 
      $query = "SELECT * 
         FROM ptb_users, ptb_stats 
         WHERE ptb_users.account_type = \"User\" AND ptb_users.account_status = \"Active\" AND ptb_stats.user_id = ptb_users.id 
         AND ptb_stats.userage >= ADDDATE(CURRENT_DATE(), INTERVAL -25 YEAR)    

         ORDER BY ptb_stats.user_age DESC 
         LIMIT 0,40"; 
      $categories_under25_set = mysql_query($query, $connection); 
      confirm_query($categories_under25_set); 
      return $categories_under25_set; 
     } 

Мой PHP:

<?php 
$dob = $age['user_age']; 

function age_from_dob($dob) { 


     $date = date_diff(date_create($dob), date_create('now'))->y; 
     return $date; 
} 

?> 
    <?php 
     $categories_under25_set = categories_agegroup_under25(); 
     while ($age = mysql_fetch_array($categories_under25_set)) { 
      $date = age_from_dob($age['user_age']); 

      echo" 
      <div class=\"boxgrid caption\"> 
      <a href=\"profile.php?id={$age['id']}\"><img width=140px height= 180px src=\"data/photos/{$age['id']}/_default.jpg\"/></a> 
      <div class=\"cover boxcaption\"> 
      <h58> {$age['display_name']}, ".$date."</h58> 
      </div> 
      </div>"; 
     } 
    ?> 

ответ

0

ли ptb_stats.userage номер или метка времени? Если это число, то where ptb_stats.userage < 25 будет работать.

+0

Св VARCHAR (11) его номер –

1

Я предполагаю, что вы ищете

SUBDATE(CURRENT_DATE(), INTERVAL 25 YEAR) 
Смежные вопросы