2012-01-06 7 views
0

私は前に同様のスレッドを開いたが、成功しなかった。しかし、私のコードを改善するのに役立ちましたが、まだ私の目標に達していません。私がしようとしているのは、会議が開催されてから7日後に私のウェブサイトに分のセットを表示することです。これは、次のようなSQL文は次のとおりです。データを表示するSQL 7日後

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、タイトル、会長、秘書、TOF、occurances、アクション

部屋:room_id、部屋、日付(これはvarcharフィールドにあり、正しい形式ではないが、そのように作られている)、time、meeting_id。

分:minute_id、件名、next_subject、承認は、それがどのようなデータが表示されない

をMEETING_ID。 「まだこの会議の議事録はありません」という私のメッセージをエコーし​​ています。

私の部屋テーブルの日付フィールドの私のデータ型は日付です。

help guy?

+0

にRooms.dateに良いだろう$結果とポストを印刷してくださいそれは –

+0

私はすでに言った、エラーメッセージはありません。まだこの会議の議事録がないと言っているだけです。基本的には、7日以上経過している分があるにもかかわらず、データを取得していません – user1114080

+0

私はただSQL文字列が必要です。エコー$結果; –

答えて

0

おそらくBETWEENを使用しますか?

$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); 
+0

それは言います:警告:sprintf()[function.sprintf]:E:\ webareas \ hj942 \ CW \ meetings \ conference \ viewminutes.phpの64行目の引数が少なすぎます – user1114080

+0

あなたは何か戻ってくるのですか?そうするならば、問題はあなたの結合によって他の場所にあります。 – nobody

+0

警告:mysql_num_rows():指定された引数は、62行目のE:¥webareas¥hj942¥CW¥meetings¥conference¥viewminutes.phpにある有効なMySQL結果リソースではありません – user1114080

0

"Rooms.date"はvarcharです。 以下を試してください。ただし、これによりRooms.dateフィールドのインデックスを使用すると無駄になります。

でRooms.dateを置き換える:あなたのRooms.dateの分野で使用されている形式でフォーマットを交換する必要がMysql String to Date

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

を見てください。 私は使用例のような形式を想定しています。「2010年10月15日12時34分22秒」

をそれは本当のdatetimeデータ型

関連する問題