только список заданий, если текущее время> время истечения (php mysqli) - PullRequest
0 голосов
/ 12 ноября 2009

Я пытаюсь перечислить все записи из базы данных, срок действия которых не истек.

У меня разрабатывается сайт со списком вакансий, у меня есть код, чтобы получить все «активные» сведения о вакансии из базы данных и вывести список.

$mysql = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database');
$stmtJ = $mysql->prepare('SELECT id,jobtitle,vcref,jobtype,jobintro,closingdate FROM jobs WHERE active = 1');

$stmtJ->execute();
$stmtJ->store_result();
$stmtJ->bind_result($id,$jobtitle,$vcref,$jobtype,$jobintro,$closingdate);
$totalLiveJobs = $stmtJ->num_rows();

и выводится так:

<?php
while($row = $stmtJ->fetch()) :
echo("<p>job detail here</p>");
endwhile; 
?>

и у меня также есть фрагмент 'оператора if', чтобы увидеть, истекло ли задание или нет (то есть, если expires {expires - это дата yyyy-mm-dd} больше, чем '$ now', оно не должно отображаться.

$expires = date('Y-m-d-H-i-s',strtotime("$closingdate 12:00:00"));

$now = date('Y-m-d-H-i-s');


if ($expires < $now) {

echo ("<h3>Live Jobs Here</h3> $expires");

} else {

echo ("<h3>Job Expired</h3> $now");

}

Однако у меня возникли проблемы при объединении этих двух данных с основной целью, так как все задания, срок действия которых еще не истек, будут отображаться на странице, а все задания, срок действия которых истек, не должны отображаться на странице.

Я дергаю себя за волосы, любая помощь приветствуется, любые просьбы о дополнительной информации я отвечу, как только смогу.

спасибо заранее

Ответы [ 3 ]

2 голосов
/ 12 ноября 2009

в зависимости от структуры вашей базы данных, вы можете сделать

SELECT * FROM jobs WHERE active = 1 AND closingdate >= NOW()
0 голосов
/ 12 ноября 2009

Если все данные хранятся в одной таблице, вы можете использовать этот запрос:

SELECT id,jobtitle,vcref,jobtype,jobintro,closingdate 
FROM jobs 
WHERE CONCAT(closingdate, ' 12:00:00') > '{$mysql_timestamp}' AND active = 1

Примечание: формат отметки времени mysql

date('Y-m-d H-i-s')

также вы можете использовать встроенную функцию NOW (), однако, в зависимости от вашего хостинга, часовой пояс может отличаться от аудитории вашего сайта.

0 голосов
/ 12 ноября 2009

Вы можете объединить два результата SQL-запроса, которые имеют одинаковые возвращаемые столбцы, используя UNION.

Подробнее здесь: Школы W3C: SQL Union .

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