0
我有这几行代码。它的功能是根据输入的日期创建一个表格。如果日期比如今天是周一,那么这将导致到5列(周一,周二,周三,周四,周五)或者如果今天是周二,它会导致对4列(周二,周三,周五,周五)等等。我的问题是我使用的代码太长了。我想问问是否可以缩短这个?如果有可能,你能教我如何?基于数据输入创建表php
这里是我的代码:
if ($jd2 == 'Monday')
{
$sql="SELECT
a.specialist_partner_ID
,count(CASE WHEN a.receivedDate between '".$datefrom."' and '".$dateto."' THEN a.job_order_number ELSE null END) As THU
,count(CASE WHEN a.receivedDate between DATE_SUB('".$datefrom."', INTERVAL 1 DAY) and DATE_SUB('".$dateto."', INTERVAL 1 DAY) THEN a.job_order_number ELSE null END) As FRI
,count(job_order_number) As Total
FROM jo_partner a
WHERE a.receivedDate BETWEEN '".$datefrom."' AND '".$dateto."'
GROUP BY a.specialist_partner_ID";
}
//echo $sql;
echo "<table width='200' border='2'>";
echo "<tr>";
echo "<td>MON</td>";
echo "<td>THU</td>";
echo "<td>WED</td>";
echo "<td>THU</td>";
echo "<td>FRI</td>";
echo "<td>total</td>";
echo "</tr>";
}
$query = mysql_query($sql);
while($row = mysql_fetch_array($query))
{
$MON = $row['MON'];
$TUE = $row['TUE'];
$WED = $row['WED'];
$THU = $row['THU'];
$FRI = $row['FRI'];
$Total = $row['Total'];
if ($jd2 == 'Monday')
{
echo "<tr>";
echo "<td>$MON</td>";
echo "<td>$TUE</td>";
echo "<td>$WED</td>";
echo "<td>$THU</td>";
echo "<td>$FRI</td>";
echo "<td>$Total</td>";
echo "</tr>";
}
}
echo "</table>";
if ($jd2 == 'Tuesday')
{
$sql="SELECT
a.specialist_partner_ID
,count(CASE WHEN a.receivedDate between '".$datefrom."' and '".$dateto."' THEN a.job_order_number ELSE null END) As THU
,count(CASE WHEN a.receivedDate between DATE_SUB('".$datefrom."', INTERVAL 1 DAY) and DATE_SUB('".$dateto."', INTERVAL 1 DAY) THEN a.job_order_number ELSE null END) As FRI
,count(job_order_number) As Total
FROM jo_partner a
WHERE a.receivedDate BETWEEN '".$datefrom."' AND '".$dateto."'
GROUP BY a.specialist_partner_ID";
//echo $sql;
echo "<table width='200' border='2'>";
echo "<tr>";
echo "<td>TUE</td>";
echo "<td>WED</td>";
echo "<td>THU</td>";
echo "<td>FRI</td>";
echo "<td>total</td>";
echo "</tr>";
}
$query = mysql_query($sql);
while($row = mysql_fetch_array($query))
{
$TUE = $row['TUE'];
$WED = $row['WED'];
$THU = $row['THU'];
$FRI = $row['FRI'];
$Total = $row['Total'];
if ($jd2 == 'Tueday')
{
echo "<tr>";
echo "<td>$TUE</td>";
echo "<td>$WED</td>";
echo "<td>$THU</td>";
echo "<td>$FRI</td>";
echo "<td>$Total</td>";
echo "</tr>";
}
}
echo "</table>";
if ($jd2 == 'Wednesday')
{
$sql="SELECT
a.specialist_partner_ID
,count(CASE WHEN a.receivedDate between '".$datefrom."' and '".$dateto."' THEN a.job_order_number ELSE null END) As THU
,count(CASE WHEN a.receivedDate between DATE_SUB('".$datefrom."', INTERVAL 1 DAY) and DATE_SUB('".$dateto."', INTERVAL 1 DAY) THEN a.job_order_number ELSE null END) As FRI
,count(job_order_number) As Total
FROM jo_partner a
WHERE a.receivedDate BETWEEN '".$datefrom."' AND '".$dateto."'
GROUP BY a.specialist_partner_ID";
//echo $sql;
echo "<table width='200' border='2'>";
echo "<tr>";
echo "<td>WED</td>";
echo "<td>THU</td>";
echo "<td>FRI</td>";
echo "<td>total</td>";
echo "</tr>";
}
$query = mysql_query($sql);
while($row = mysql_fetch_array($query))
{
$WED = $row['WED'];
$THU = $row['THU'];
$FRI = $row['FRI'];
$Total = $row['Total'];
if ($jd2 == 'Wednesday')
{
echo "<tr>";
echo "<td>$WED</td>";
echo "<td>$THU</td>";
echo "<td>$FRI</td>";
echo "<td>$Total</td>";
echo "</tr>";
}
}
echo "</table>";