Мне нужно выбрать данные из базы данных mysql за последние 12 месяцев на основе текущей даты. У меня есть даты, сохраненные в базе данных как временные метки unix, но мой запрос не работает.
$query="SELECT user_id, COUNT(first_name) AS member_count FROM main_user WHERE renew_date<'$time' AND renew_date>'$old_time' WHERE renew_date!=''";
В основном мне нужно подсчитать все экземпляры first_name, где есть отметка времени renew_date.
У вас есть еще WHERE
где вы должны использовать AND
:
$query="SELECT user_id, COUNT(first_name) AS member_count FROM main_user WHERE renew_date<'$time' AND renew_date>'$old_time' AND renew_date!=''"; ^^^
У вас есть ошибка в вашем запросе, у вас есть два предложения WHERE!
Вы можете найти эту и другие ошибки при проверке возвращаемого значения из вашего запроса
$query = 'select ...'; $result = $mysqli->query($query); if ($result === false) { // error handling echo $mysqli->error; } else { // query successful // process result set }
Вы делаете WHERE
дважды . Вы можете использовать функцию From_UNIXTIME в mysql
WHERE FROM_UNIXTIME(renew_date)<NOW() AND FROM_UNIXTIME(renew_date)> (NOW()-INTERVAL 1 year) AND renew_date !=''