PHP/MySQL-调度程序-垂直列

PHP/MySQL-调度程序-垂直列,php,mysql,Php,Mysql,我正在写一个应用程序,需要在垂直柱结构中显示销售人员的约会。我能找到的最接近我想要做的事情如下所示: 销售人员的姓名在最上面,他们本周的约会是垂直安排的。销售人员预约的每一天(本例中为周四和周五)都有一个漂亮的蓝色标题 以下是my MySQL约会表的设置方式: 预约表: ====================================================================== id | id_sales | id_lead | a

我正在写一个应用程序,需要在垂直柱结构中显示销售人员的约会。我能找到的最接近我想要做的事情如下所示:

销售人员的姓名在最上面,他们本周的约会是垂直安排的。销售人员预约的每一天(本例中为周四和周五)都有一个漂亮的蓝色标题

以下是my MySQL
约会表的设置方式:
预约表:

======================================================================
   id   |   id_sales   |   id_lead   |   appt_date   |   appt_time   |
----------------------------------------------------------------------
   1    |   1          |   2         |   2013-12-26  |   11:00       |
----------------------------------------------------------------------
   2    |   1          |   3         |   2013-01-05  |   13:00       |
----------------------------------------------------------------------
   3    |   2          |   5         |   2013-12-27  |   13:00       |
----------------------------------------------------------------------
   4    |   2          |   6         |   2013-12-28  |   17:00       |
----------------------------------------------------------------------
   5    |   1          |   7         |   2013-12-29  |   19:30       |
======================================================================
id\u sales
指销售人员的个人id(在另一个表中处理),而
id\u lead
指约会(也在另一个表中处理)

到目前为止,我不需要完整地解释如何处理这项任务的各个方面。我被卡住了,不知道如何继续。我很乐意将销售人员ID作为表格标题,并在其下方添加约会ID(
ID\u lead
)。在你的帮助下,一旦我把那件作品做好了,我会设法解决剩下的问题;)

我将附上我提出的非工作代码:

schedule.php:

...
<div id="schedule_wrapper_all">
  <?php print get_schedule_all(); ?>
</div>
...
。。。
...
db_functions.php:

function get_schedule_all() {
    $headers = get_table_headers();
    $schedule_builder = '';
    $schedule_builder .= '<table border="1">';
    $schedule_builder .= $headers;
    $schedule_builder .= '</table>';
    return $schedule_builder;
}

function get_table_headers() {
    include 'scripts/mysql_login_pdo.php';
    $query = "SELECT DISTINCT `id_sales` FROM `appointments` ORDER BY `id_sales` ASC";
    $stmt = $db->prepare($query);
    $stmt->execute();
    $appointments = '';
    $schedule_headers = '';
    $schedule_headers .= '<tr>';
    while ($row = $stmt->fetchObject()) {
        $id_sales = $row->id_sales;
        $schedule_headers .= "<th id='$id_sales'>$id_sales</th>";
        $appointments .= fill_appts($id_sales);
    }
    $schedule_headers .= '</tr>';
    $db = null;
    $schedule_headers .= $appointments;
    return $schedule_headers;
}

function fill_appts($id_sales) {
    include 'scripts/mysql_login_pdo.php';
    $query = "SELECT `id_lead` FROM `appointments` WHERE `id_sales` = :id_sales";
    $stmt = $db->prepare($query);
    $stmt->execute(array(
        ':id_sales' => $id_sales
    ));

    $schedule_appts = '';
    $schedule_appts .= '<tr>';
    while ($row = $stmt->fetchObject()) {
        $id_lead = $row->id_lead;
        $schedule_appts .= "<td>$id_lead</td>";
    }
    $schedule_appts .= '</tr>';
    $db = null;
    return $schedule_appts;
}
函数get\u schedule\u all(){
$headers=get_table_headers();
$schedule_builder='';
$schedule_builder.='';
$schedule_builder.=$headers;
$schedule_builder.='';
返回$schedule_builder;
}
函数get_table_headers(){
包括“scripts/mysql_login_pdo.php”;
$query=“通过'id\u sales`ASC'从'appointment`订单中选择不同的'id\u sales';
$stmt=$db->prepare($query);
$stmt->execute();
$任命='';
$schedule_headers='';
$schedule_headers.='';
而($row=$stmt->fetchObject()){
$id\u sales=$row->id\u sales;
$schedule\u headers.=“$id\u sales”;
$Appoints.=填写申请($id\U销售);
}
$schedule_headers.='';
$db=null;
$schedule_headers.=$appointment;
返回$schedule_标题;
}
功能填充应用($id\U销售){
包括“scripts/mysql_login_pdo.php”;
$query=“从“约会”中选择“id\u销售线索”,其中“id\u销售”=:id\u销售”;
$stmt=$db->prepare($query);
$stmt->execute(数组)(
“:id\u sales”=>$id\u sales
));
$schedule_appts='';
$schedule_appts.='';
而($row=$stmt->fetchObject()){
$id\u lead=$row->id\u lead;
$schedule\u appts.=“$id\u lead”;
}
$schedule_appts.='';
$db=null;
返回$schedule_appts;
}
结果截图:

再次感谢您的帮助

------------------------------------------更新------------------------------------------
让它工作起来。需要很多造型,但这是一个正确方向的开始

function get_schedule_all() {
    $headers = get_table_headers();
    $appointments = appointments();
    $schedule_builder = '';
    $schedule_builder .= '<table>';
    $schedule_builder .= $headers;
    $schedule_builder .= $appointments;
    $schedule_builder .= '</table>';
    return $schedule_builder;
}

function get_table_headers() {
    include 'scripts/mysql_login_pdo.php';
    $query = "SELECT DISTINCT `id_sales` FROM `appointments` ORDER BY `id_sales` ASC";
    $stmt = $db->prepare($query);
    $stmt->execute();
    $schedule_headers = '';
    $schedule_headers .= '<tr>';
    while ($row = $stmt->fetchObject()) {
        $id_sales = $row->id_sales;
        $schedule_headers .= "<td id='$id_sales'>$id_sales</td>";
    }
    $schedule_headers .= '</tr>';
    $db = null;
    return $schedule_headers;
}

function fill_appts($id_sales) {
    include 'scripts/mysql_login_pdo.php';
    $query = "SELECT `id_lead` FROM `appointments` WHERE `id_sales` = :id_sales";
    $stmt = $db->prepare($query);
    $stmt->execute(array(
        ':id_sales' => $id_sales
    ));

    $schedule_appts = '';
    $schedule_appts .= '<table>';
    while ($row = $stmt->fetchObject()) {
        $id_lead = $row->id_lead;
        $schedule_appts .= "<tr><td class='appt'>$id_lead</td></tr>";
    }
    $schedule_appts .= '</table>';
    $db = null;
    return $schedule_appts;
}

function appointments(){
    include 'scripts/mysql_login_pdo.php';
    $query = "SELECT DISTINCT `id_sales` FROM `appointments` ORDER BY `id_sales` ASC";
    $stmt = $db->prepare($query);
    $stmt->execute();
    $appointments = '';
    $appointments .= '<tr>';
    while ($row = $stmt->fetchObject()) {
        $id_sales = $row->id_sales;
        $appointments .= '<td>';
        $appointments .= fill_appts($id_sales);
        $appointments .= '</td>';
    }
    $appointments .= '</tr>';
    $db = null;
    return $appointments;
}

函数get\u schedule\u all(){
$headers=get_table_headers();
$appointments=约会();
$schedule_builder='';
$schedule_builder.='';
$schedule_builder.=$headers;
$schedule_builder.=$Appointment;
$schedule_builder.='';
返回$schedule_builder;
}
函数get_table_headers(){
包括“scripts/mysql_login_pdo.php”;
$query=“通过'id\u sales`ASC'从'appointment`订单中选择不同的'id\u sales';
$stmt=$db->prepare($query);
$stmt->execute();
$schedule_headers='';
$schedule_headers.='';
而($row=$stmt->fetchObject()){
$id\u sales=$row->id\u sales;
$schedule\u headers.=“$id\u sales”;
}
$schedule_headers.='';
$db=null;
返回$schedule_标题;
}
功能填充应用($id\U销售){
包括“scripts/mysql_login_pdo.php”;
$query=“从“约会”中选择“id\u销售线索”,其中“id\u销售”=:id\u销售”;
$stmt=$db->prepare($query);
$stmt->execute(数组)(
“:id\u sales”=>$id\u sales
));
$schedule_appts='';
$schedule_appts.='';
而($row=$stmt->fetchObject()){
$id\u lead=$row->id\u lead;
$schedule\u appts.=“$id\u lead”;
}
$schedule_appts.='';
$db=null;
返回$schedule_appts;
}
职能任命(){
包括“scripts/mysql_login_pdo.php”;
$query=“通过'id\u sales`ASC'从'appointment`订单中选择不同的'id\u sales';
$stmt=$db->prepare($query);
$stmt->execute();
$任命='';
$任命='';
而($row=$stmt->fetchObject()){
$id\u sales=$row->id\u sales;
$任命='';
$Appoints.=填写申请($id\U销售);
$任命='';
}
$任命='';
$db=null;
退回$100的预约;
}

您可以做的是,在id sales的每个单元格中创建另一个
,而不是
$id\u lead
,然后使用
$id\u lead
,这样每个$id\u lead将成为id\u sales下面的一行


这样,在id_sales 1的单元格中,表中将有2、3和7作为3行。5,6作为表中的两行,在id_sales 2的单元格内。

Ah。。好主意。非常感谢。这条路线对性能有影响吗?没有。您应该能够使用与现在相同的查询。将走这条路线。再次感谢!一旦成功,您可以使用更新的代码编辑您的问题,这样也可以帮助其他人:)我希望看到您的成品截图:)