Поиск возрастного диапазона в MySQL, PHP - PullRequest
0 голосов
/ 10 апреля 2011

Эй, ребята, мне нужно сделать функцию, которая будет искать возрастной диапазон в этой функции

    function search($query) {

    $query = mysql_escape_string($query);   
    $connection = mysql_open();
    $statement = "select ID, UserName, Gender, USERDOB,DATEDIFF(USERDOB,now()) from Users ";
     if (!empty($query)) {
        $statement .= "where FirstName like '%$query%' " .
                    "or LastName like '%$query%' " .
                    "or UserName like '%$query%' " .
                    "or Gender like '%$query%' ";
                         }
        $statement .= "order by id ";

    $result = @ mysql_query($statement, $connection)
     or showerror();

  $users = array();
  while ($user = mysql_fetch_array($result)) {
      $user[4] = floor($user[4]/-1/364.25);
      $users[] = $user;
  }

  // Close connection and return resulting array
  mysql_close($connection)
      or showerror();
  return $users;
}

Это функция поиска.Но это также позволяет просматривать возраст людей.Возраст не хранится в базе данных, но DOB есть.Так что он рассчитывает это.Я также использую шаблон Smarty.mysql_open () - моя собственная функция.Я полагаю, мне нужно найти способ определить возраст в запросе и сделать что-то с диапазоном ...

В любом случае, совсем потеряно, есть идеи?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2011

Если у вас есть DOB в базе данных и вы хотите найти строки, которые соответствуют возрастному диапазону, самый простой и эффективный способ - сначала преобразовать ваш минимальный возраст и максимальный возраст в DOB в вашем php.Тогда ваш запрос будет выглядеть примерно так:

SELECT * FROM USERS WHERE DOB > MIN_DOB AND DOB <= MAX_DOB;

при условии, что DOB - это отметка времени или дата или длинна.

1 голос
/ 10 апреля 2011

Вам нужно получить начальную и конечную возрастную часть $ query, а затем преобразовать начальный и конечный возраст в даты рождения.

Затем вы можете добавить

"OR dob BETWEEN '%$startdob%' AND '%$enddob%'"

, которое должно оцениваться примерно как OR dob МЕЖДУ '1980-01-01' И '1990-01-01'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...