SQL показывает данные через 7 дней - PullRequest
0 голосов
/ 06 января 2012

Я уже открывал похожую ветку, но безуспешно. Это, однако, помогло мне улучшить мой код, но я все еще не достиг своей цели. Я пытаюсь отобразить на своем веб-сайте набор минут через 7 дней после встречи. SQL-оператор для этого выглядит следующим образом:

i have taken some of Ashley Banks code and inserted into mine without any success. I am not getting any errors but I am also not getting any data to show up. my code is as follows::

    <?php
$id = $_GET['meeting_id'];
$from = date( 'Y-m-d', strtotime( $row['date_update'] . '-7 days' ) ); 

$result = mysql_query('SELECT * FROM Meetings LEFT JOIN Minutes ON Meetings.meeting_id = Minutes.meeting_id 

INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id 

WHERE  Rooms.date >= "' . $from . '" AND Rooms.date <= NOW() AND Minutes.approval = "approved" AND Meetings.meeting_id = "$id"')

or die(mysql_error());

if (mysql_num_rows($result) == 0) {
       echo '<h3>There Arent Any Minutes For This Meeting Yet</h3>';
    } else {

while($info = mysql_fetch_array($result))
{

        echo "<tr>";
        echo "<td><br/>" .'Title: '. $info['title']." </td>";
        echo "<td><br/><br/>" .'Subject: '. $info['subject']. "</td>";
        echo "<td><br/><br/>" .'Next Subject: '. $info['next_subject']."</td>";

        echo '<br/><br/><a href="attendees.php?meeting_id=' . $info['meeting_id'] . '" target="_blank">Attendees</a>';
        echo '&nbsp;|&nbsp;<a href="apologies.php?meeting_id=' . $info['meeting_id'] . '" target="_blank">Apologies</a>';



        }
    }
echo "</tr>";
echo "</table>";


?>

Мои таблицы и поля:

Встречи: Meeting_id, Должность, Председатель, Секретарь, То, Случаи, Акция

Rooms: room_id, room, date (это в поле varchar, я знаю, что оно не в нужном формате, но оно было сделано так), time, meeting_id.

Минуты: minute_id, тема, next_subject, утверждение, meeting_id

данные не отображаются. это просто повторяет мое сообщение: «У этой встречи еще нет минут»

Мой тип данных для поля даты в моей таблице Rooms - дата.

Любая помощь, ребята?

Ответы [ 2 ]

0 голосов
/ 06 января 2012

Ваша проблема связана с тем, что "Rooms.date" является varchar. Попробуйте выполнить следующее, но учтите, что это сделает использование индекса в поле Rooms.date бесполезным.

заменить Rooms.date на:

STR_TO_DATE(Rooms.date, '%Y-%m-%d %T');

Пожалуйста, посмотрите на: Mysql String to Date Вам необходимо заменить формат на формат, используемый в вашем поле Rooms.date. Пример, который я использовал, предполагает такой формат: '2010-10-15 12: 34: 22'

Было бы лучше, чтобы Rooms.date использовал тип данных реального времени

.
0 голосов
/ 06 января 2012

Может быть, использовать МЕЖДУ?

$enddate = date('Y-m-d',strtotime("-1 week"));
$sql = "SELECT * FROM Meetings LEFT JOIN Minutes ON Meetings.meeting_id = Minutes.meeting_id INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id WHERE  Rooms.date BETWEEN '" . $enddate . "' AND '" . date("Y-m-d") . "' AND Minutes.approval = 'approved' AND Meetings.meeting_id = " . $id;
mysql_query($sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...