Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于PHP的数据输入创建表_Php_Mysql_Sql_Html Table - Fatal编程技术网

基于PHP的数据输入创建表

基于PHP的数据输入创建表,php,mysql,sql,html-table,Php,Mysql,Sql,Html Table,我有这几行代码。它的功能是根据输入的日期创建一个表。例如,如果今天的日期是星期一,那么它将导致5列(星期一、星期二、星期三、星期四、星期五),或者如果今天是星期二,它将导致4列(星期二、星期三、星期四、星期五)等等。我的问题是我使用的代码太长。我想问一下是否可以缩短这个时间?如果可能的话,你能教我怎么做吗 这是我的密码: if ($jd2 == 'Monday') { $sql="SELECT a.specialist_partner_ID ,count(

我有这几行代码。它的功能是根据输入的日期创建一个表。例如,如果今天的日期是星期一,那么它将导致5列(星期一、星期二、星期三、星期四、星期五),或者如果今天是星期二,它将导致4列(星期二、星期三、星期四、星期五)等等。我的问题是我使用的代码太长。我想问一下是否可以缩短这个时间?如果可能的话,你能教我怎么做吗

这是我的密码:

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>";
if($jd2==“星期一”)
{
$sql=“选择
a、 专家\合伙人\ ID
,计数(当a.receivedDate介于“.$datefrom.”和“.$dateto.”之间时的大小写),然后a.job\u order\u number或null END)作为THU
,计数(当a.receivedDate介于DATE_SUB(“$datefrom.”,间隔1天)和DATE_SUB(“$dateto.”,间隔1天)之间时,则a.job_order_number,否则为空结束)为FRI
,将(工作订单号)计为总数
来自Jou partner a
其中a.receivedDate介于“.$datefrom.”和“.$dateto.”
由a.specialist_partner_ID”分组;
}
//echo$sql;
回声“;
回声“;
回音“MON”;
回声“THU”;
呼应“WED”;
回声“THU”;
回声“FRI”;
回声“总”;
回声“;
}
$query=mysql\u查询($sql);
while($row=mysql\u fetch\u array($query))
{
$MON=$row['MON'];
$TUE=$row['TUE'];
$WED=$row['WED'];
$THU=$row['THU'];
$FRI=$row['FRI'];
$Total=$row['Total'];
如果($jd2==‘星期一’)
{
回声“;
回音“$MON”;
回音“$TUE”;
回声“$WED”;
回音“$THU”;
回声“$FRI”;
回显“$总计”;
回声“;
}
}
回声“;
如果($jd2==“星期二”)
{
$sql=“选择
a、 专家\合伙人\ ID
,计数(当a.receivedDate介于“.$datefrom.”和“.$dateto.”之间时的大小写),然后a.job\u order\u number或null END)作为THU
,计数(当a.receivedDate介于DATE_SUB(“$datefrom.”,间隔1天)和DATE_SUB(“$dateto.”,间隔1天)之间时,则a.job_order_number,否则为空结束)为FRI
,将(工作订单号)计为总数
来自Jou partner a
其中a.receivedDate介于“.$datefrom.”和“.$dateto.”
由a.specialist_partner_ID”分组;
//echo$sql;
回声“;
回声“;
回声“星期二”;
呼应“WED”;
回声“THU”;
回声“FRI”;
回声“总”;
回声“;
}
$query=mysql\u查询($sql);
while($row=mysql\u fetch\u array($query))
{
$TUE=$row['TUE'];
$WED=$row['WED'];
$THU=$row['THU'];
$FRI=$row['FRI'];
$Total=$row['Total'];
如果($jd2=='Tueday')
{
回声“;
回音“$TUE”;
回声“$WED”;
回音“$THU”;
回声“$FRI”;
回显“$总计”;
回声“;
}
}
回声“;
如果($jd2==‘星期三’)
{
$sql=“选择
a、 专家\合伙人\ ID
,计数(当a.receivedDate介于“.$datefrom.”和“.$dateto.”之间时的大小写),然后a.job\u order\u number或null END)作为THU
,计数(当a.receivedDate介于DATE_SUB(“$datefrom.”,间隔1天)和DATE_SUB(“$dateto.”,间隔1天)之间时,则a.job_order_number,否则为空结束)为FRI
,将(工作订单号)计为总数
来自Jou partner a
其中a.receivedDate介于“.$datefrom.”和“.$dateto.”
由a.specialist_partner_ID”分组;
//echo$sql;
回声“;
回声“;
呼应“WED”;
回声“THU”;
回声“FRI”;
回声“总”;
回声“;
}
$query=mysql\u查询($sql);
while($row=mysql\u fetch\u array($query))
{
$WED=$row['WED'];
$THU=$row['THU'];
$FRI=$row['FRI'];
$Total=$row['Total'];
如果($jd2==‘星期三’)
{
回声“;
回声“$WED”;
回音“$THU”;
回声“$FRI”;
回显“$总计”;
回声“;
}
}
回声“;

也许这可以给你一个想法:

<?php

//to make testing easier
$jd2 = isset($_GET['jd2'])?$_GET['jd2']:'Monday';

//array with abbr
$days = array(
    'Monday' => 'MON',
    'Tuesday' => 'TUE',
    'Wednesday' => 'WED',
    'Thursday' => 'THU',
    'Friday' => 'FRI');

//this will hold the tr content
$tr_content = '';
foreach(array_reverse($days,true) as $day => $abbr){
    $tr_content = "<td>$day</td>".$tr_content;
    if($jd2 == $day) break;
}
echo "<table border=1><tr>$tr_content</tr></table>";

//create a few links to try
foreach($days as $day => $i){
    echo "<a href='?jd2=$day'>$day</a><br>";
}

?>