Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Mysql 无法使用从CakePHP 2中的查询中获得的变量从数据库检索结果_Mysql_Cakephp_Cakephp 2.0 - Fatal编程技术网

Mysql 无法使用从CakePHP 2中的查询中获得的变量从数据库检索结果

Mysql 无法使用从CakePHP 2中的查询中获得的变量从数据库检索结果,mysql,cakephp,cakephp-2.0,Mysql,Cakephp,Cakephp 2.0,我在我正在建造的东西上遇到了一个问题 我有两个表,一个是工作表表,另一个是工作数据表。作业表存储有关作业编号、工人等的信息。作业数据表存储作业编号(链接到作业表)以及与其相关的作业等。例如: Job Sheet --------------------------- | ID | Jobnum | Worker | --------------------------- | 1 | 1234 | J.Bloggs | | 2 | 5678 | J.Smith | ----

我在我正在建造的东西上遇到了一个问题

我有两个表,一个是工作表表,另一个是工作数据表。作业表存储有关作业编号、工人等的信息。作业数据表存储作业编号(链接到作业表)以及与其相关的作业等。例如:

Job Sheet
---------------------------
| ID | Jobnum |   Worker  |
---------------------------
| 1  |  1234  | J.Bloggs  |
| 2  |  5678  | J.Smith   |
---------------------------

Job Data
----------------------------
| ID | Jobnum |    Work    |
----------------------------
| 1  |  1234  | Light bulb |
| 2  |  1234  | Painting   |
| 3  |  1234  | Decorating |
| 4  |  5678  | Wood Work  |
| 5  |  5678  | Cleaning   |
----------------------------
我的问题是,当我在屏幕上打印工作表时,我希望能够打印工作表的详细信息,然后为每个工作表打印相关数据,如下所示:

Job Sheets To Be Printed
--------------------------------------------------------

Job Sheet ID - 1
Job Number - 1234
Worker - J.Bloggs

Work Undertaken
---------------
Light Bulb
Painting
Decorating

***********

Job Sheet ID - 2
Job Number - 5678
Worker - J.Smith

Work Undertaken
---------------
Wood Work
Cleaning
我的问题是,虽然我可以打印工作表的详细信息(姓名等),但它只会从数据库返回一组记录,并将它们放入每个工作表中。因此,第一张工作表中的数据也会显示在第二张工作表中,即使它应该有自己的数据

我在控制器中的代码如下:

    $jobsheets = $this->Jobsheet->find('all', array('conditions' => array('Jobsheet.contract' => $contractid), 'recursive' => 2));
    $this->set('jobsheets', $jobsheets);

    foreach ($jobsheets as $js) {

        $jobnum[] = $js['Jobsheet']['jobnum'];

    }

    print_r($jobnum);

    foreach ($jobnum as $jn) {

        // Job Data
        $jobrec = $this->Jobdata->find('all', array('conditions' => array('Jobdata.jobsheetid' => $jn), 'recursive' => 2));
        $this->set('jobrec', $jobrec);

    }       
在我看来,我有以下代码:

        <?php foreach ($jobsheets as $jobsheet) { ?>
            <p>Job Sheet ID - <?php echo $jobsheet['Jobsheet']['id']; ?></p>
            <p>Job Number - <?php echo $jobsheet['Jobsheet']['jobnum']; ?></p>
            <p>Worker - <?php echo $jobsheet['Jobsheet']['worker']; ?></p>
            <p>Work Undertaken</p>
            <?php foreach ($jobrec as $jb) { ?>
                <p><?php echo $jb['Jobdata']['work'];?></p>
        <?php } } ?>

我能做些什么来修复此问题?

在控制中进行此更改

 foreach ($jobnum as $jn) {

            // Job Data
            $jobrec[] = $this->Jobdata->find('all', array('conditions' => array('Jobdata.jobsheetid' => $jn), 'recursive' => 2));
            $this->set('jobrec', $jobrec);

        } 
而这一变化正在酝酿之中

 <?php $i=0; ?>
    <?php foreach ($jobsheets as $jobsheet) { ?>

                <p>Job Sheet ID - <?php echo $jobsheet['Jobsheet']['id']; ?></p>
                <p>Job Number - <?php echo $jobsheet['Jobsheet']['jobnum']; ?></p>
                <p>Worker - <?php echo $jobsheet['Jobsheet']['worker']; ?></p>
                <p>Work Undertaken</p>
                <?php foreach ($jobrec[$i] as $jb) { ?>
                    <p><?php echo $jb['Jobdata']['work'];?></p>
            <?php }
           $i++;
 } ?>

工作表ID-

工作编号-

工人-

开展的工作

 <?php $i=0; ?>
    <?php foreach ($jobsheets as $jobsheet) { ?>

                <p>Job Sheet ID - <?php echo $jobsheet['Jobsheet']['id']; ?></p>
                <p>Job Number - <?php echo $jobsheet['Jobsheet']['jobnum']; ?></p>
                <p>Worker - <?php echo $jobsheet['Jobsheet']['worker']; ?></p>
                <p>Work Undertaken</p>
                <?php foreach ($jobrec[$i] as $jb) { ?>
                    <p><?php echo $jb['Jobdata']['work'];?></p>
            <?php }
           $i++;
 } ?>