PHP - MySQL - Javascript
MySQL クエリに基づいてデータを入力したい JavaScript アコーディオンがあります。アコーディオンの例 (現在は手動で更新されています) は、http ://www.vi-athletics.com/schedules/mens-soccer-schedule-2013-14?id=56 で入手できます。
私はいくつかのコードを書きました ( http://www.vi-athletics.com/schedules/mens-soccer-schedule-2013-14?id=55でそれが何をするかを参照してください) が、どのように進めればよいかわかりません。週の日付を常に表示し、その日付の試合の行を含めるか、今日は試合がないことを示すために、アコーディオンが必要です。
また、スポーツごとにグループ化されたゲームを表示する必要もあります。たとえば、9 月 10 日に男子サッカーの 2 試合とバレーボールの 1 試合がある場合、スポーツの名前とその下に (各試合の) テーブル行が続くテーブル行がテーブルに必要です。スポーツ(私の例のように)。その日に試合が予定されていない場合は、翌日に予定されている試合があるかどうかを確認する必要があります...
私が考えていたのは、各アコーディオンの if ステートメントを書き続けることですが、$sport = "value" の各行に表示されるスポーツ タイプに問題があると思います。これまでの私のコードは次のとおりです。
<?php
/* create the days of the week */
date_default_timezone_set('US/Eastern');
$today = time();
$weekStartDate = date('l, F d, Y',strtotime("last Monday", $today));
$weekTuesDate = date('l, F d, Y', strtotime('+1 days', strtotime($weekStartDate)));
$weekWedDate = date('l, F d, Y', strtotime('+2 days', strtotime($weekStartDate)));
$weekThursDate = date('l, F d, Y', strtotime('+3 days', strtotime($weekStartDate)));
$weekFriDate = date('l, F d, Y', strtotime('+4 days', strtotime($weekStartDate)));
$weekSatDate = date('l, F d, Y', strtotime('+5 days', strtotime($weekStartDate)));
$weekSunDate = date('l, F d, Y', strtotime('+6 days', strtotime($weekStartDate)));
/* select only the games for the current week from database */
require_once('filename.php');
$query = "SELECT gamedate, gametime, homeschool, visitorschool, homelivestatsurl, notes, gamestatus, homescore, visitorscore, score, record, sporttype FROM my_table WHERE WEEKOFYEAR(gamedate)=WEEKOFYEAR(NOW()) ORDER BY gamedate";
/* if there are results build the accordion and tables - if not, just say there are no games this week */
if ($result = mysqli_query($link, $query)) { ?>
<div style="vertical-align:top;"><img src="images/cobrasschedule.png" border="0"/></div>
<div style="width:300px; float: left; margin-left:15px; display:table;">
<?php
/* variables that will change*/
$weekday = ' ';
$day = ' ';
$sport = ' ';
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
if (date('d', strtotime($row['gamedate'])) !== $weekday) {
$weekday=date('d', strtotime($row['gamedate']));
if (date('l, F d, Y', strtotime($row['gamedate'])) !== $day) {
$day=date('l, F d, Y', strtotime($row['gamedate']));
if ($row['sporttype'] !== $sport) {
$sport=$row['sporttype'];
?>
<!--This builds the accordion -->
<div style="margin-top:13px;">
<div id="AC-label">
<div id="ACIntro"><span id="hidden_box_button1" style="color:#000000; cursor:pointer;padding-top:10px; padding-bottom:10px;font-size:14px;font-weight:bold; text-shadow:none;"><?php echo date('l, F d, Y', strtotime($weekStartDate));?><span style="float:right; margin-right: 10px;"><span id="hidden_box_button1" style="color:#000000; cursor:pointer; text-shadow:none;">+</span></span></div></div></div>
<div id="hidden_box1" style="display:none;">
<div style="float:left; clear:both; display:table; margin-top:5px;">
<!-- See if the gamedate matches the accordion date -->
<?php if (date('d', strtotime($row['gamedate'])) == date('d', strtotime($weekStartDate))) { ?>
<table style="margin-left:-15px;" cellpadding="3px">
<tbody>
<tr>
<!--Check the value of $sport and echo the appropriate table row -->
<?php if ($sport == 'Baseball'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>BASEBALL</strong></td>
<?php elseif ($sport == 'MBasketball'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>MEN'S BASKETBALL</strong></td>
<?php elseif ($sport == 'Golf'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>GOLF</strong></td>
<?php elseif ($sport == 'MSoccer'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>MEN'S SOCCER</strong></td>
<?php elseif ($sport == 'WBasketball'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>WOMEN'S BASKETBALL</strong></td>
<?php elseif ($sport == 'WSoccer'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>WOMEN'S SOCCER</strong></td>
<?php elseif ($sport == 'Softball'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>SOFTBALL</strong></td>
<?php elseif ($sport == 'Volleyball'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>VOLLEYBALL</strong></td>
<?php elseif ($sport == 'Cycling'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>CYCLING</strong></td>
<?php elseif ($sport == 'Equine'): ?>
<td colspan="2" style="background-color:#D3BC9A; color:white;text-transform:uppercase; padding-left:25px;"><strong>EQUINE</strong></td>
<?php endif; ?>
</tr>
<!--Build the table rows for the games based on the sport -->
<?php if ($row['homescore'] != ' ' and $row['homeschool'] == 'Virginia Intermont College - VA'): ?>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><strong><?php echo $row['homeschool'];?> vs.</strong><br/><?php echo $row['visitorschool'];?></span></td>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['homescore'];?><br/><?php echo $row['visitorscore'];?></span></td>
</tr>
<?php elseif ($row['homescore'] != ' ' and $row['visitorschool'] == 'Virginia Intermont College - VA'): ?>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['visitorschool'];?> @<br/><?php echo $row['homeschool'];?></span></td>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['visitorscore'];?><br/><?php echo $row['homescore'];?></span></td>
</tr>
<?php elseif (empty($row['homescore']) and empty($row['score']) and $row['homeschool'] == 'Virginia Intermont College - VA'): ?>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><strong><?php echo $row['homeschool'];?> vs.</strong><br/><?php echo $row['visitorschool'];?></span></td>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['gametime'];?><br/> </span></td>
</tr>
<?php elseif (empty($row['homescore']) and empty($row['score']) and $row['visitorschool'] == 'Virginia Intermont College - VA'): ?>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['visitorschool'];?> @<br/><?php echo $row['homeschool'];?></span></td>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['gametime'];?><br/> </span></td>
</tr>
<?php elseif ($row['score'] != ' ' and $row['homeschool'] == 'Virginia Intermont College - VA'): ?>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><strong><?php echo $row['homeschool'];?> vs.</strong><br/><?php echo $row['visitorschool'];?></span></td>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['score'];?><br/> </span></td>
</tr>
<?php elseif ($row['score'] != ' ' and $row['visitorschool'] == 'Virginia Intermont College - VA'): ?>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['visitorschool'];?> @<br/><?php echo $row['homeschool'];?></span></td>
<td style="margin-bottom:3px;"><span style="text-shadow: none;"><?php echo $row['score'];?><br/> </span></td>
</tr>
<?php endif; ?>
</tr>
</tbody>
</table>
</div>
<?php } else { ?>
<div style="float:left; clear:both; display:table; margin-top:5px;">
<table style="margin-left:-15px;" cellpadding="3px">
<tbody>
<tr>
<td style="margin-bottom:3px;"><span style="text-shadow: none;">No games today.</span></td>
</tr>
</tbody>
</table>
</div>
<?php }
}
}
}
/* close while and reset weekday date and sport */
$weekday=date('d', strtotime($row['gamedate']));
$day=date('l, F d, Y', strtotime($row['gamedate']));
$sport=$row['sporttype'];
}
?>
</div>
<script type="text/javascript">
(function($) {
$("#hidden_box_button1").click(function() {
if ( $("#hidden_box1").is(":hidden") ) {
$("#hidden_box1").slideDown("normal");
} else {
$("#hidden_box1").slideUp("normal");
}
});
})(jQuery);
</script>
</div>
<?php
/* close ifresult and give no results statement*/
} else {?>
<span style="vertical-align:top;margin-left:-16px;padding:0;"><img src="images/cobrasschedule.png" border="0"/></span>
<?php
echo "Schedule is not available.";
}
/* free result set*/
mysqli_free_result($result);
/* close connection */
mysqli_close($link);
?>