Php 在里面,在结果里

Php 在里面,在结果里,php,Php,我试图从里面获取数据。 首先,我获取文档,第二,我试图获取与文档相关的附加值 我得到数据,但第二次的结果是这样复制的: INDEX A - Value A INDEX B - Value A INDEX C - Value A INDEX D - Value A INDEX A - Value B INDEX B - Value B INDEX C - Value B INDEX D - Value B INDEX A - Value C INDEX B - Value C

我试图从里面获取数据。 首先,我获取文档,第二,我试图获取与文档相关的附加值

我得到数据,但第二次的结果是这样复制的:

INDEX A - Value A

INDEX B - Value A

INDEX C - Value A

INDEX D - Value A

INDEX A - Value B

INDEX B - Value B

INDEX C - Value B

INDEX D - Value B

INDEX A - Value C

INDEX B - Value C

INDEX C - Value C

INDEX D - Value C

INDEX A - Value D

INDEX B - Value D

INDEX C - Value D

INDEX D - Value D
我希望得到的预期结果是:

这是我的密码:

$query = "
    SELECT *
    FROM documents
    WHERE document_folder_id=$folder_id";
$result = mysql_query($query) or die(mysql_error());
$num = mysql_numrows($result);

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
        <thead>
            <tr>
                <th>Document</th>
                <th>Date</th>
                <th>Classification</th>
            </tr>
        </thead>

        <tbody>
            <?php
                $i=0;
                while ($i < $num) {
                $document_id = mysql_result($result,$i,"document_id");
                $document_number = mysql_result($result,$i,"document_number");

                $document_classification_id = mysql_result($result,$i,"document_classification_id");
                $document_classification_description = mysql_result($result,$i,"document_classification_description");
                            ?>
            <tr>
                <td><?php echo $document_number;  ?></td>

                <td><?php echo $document_date; ?></td>
                <td><?php echo $document_classification_description; ?>

                    <?php
                    // get indexes
                    $query2 = "SELECT * FROM documents_indexes_values
                                LEFT JOIN document_indexes ON value_index_id = value_id 
                                WHERE value_document_id = $document_id"; 
                    $result2 = mysql_query($query2) or die(mysql_error());

                    while($row2 = mysql_fetch_array($result2)){
                        echo "<br />";
                        echo $row2['index_description']. " - ". $row2['value_text'];
                        echo "<br />";
                    }
                    ?>
                </td>
                <? } ?>
            </tr>

            <?php
            $i++;
            }
            ?>
        </tbody>
    </table> 

我想知道一个正确的方法来处理while,我错在哪里?

查询$result2的结果是什么?通常的警告是,请参见您的代码还输出了另外两列,其中包含文档编号和日期。在您的问题中包含这一点会很有用,以查看哪些行属于哪些外部循环迭代。添加了代码的第一部分,@Stah,$result2 return Resource65I是指实际数据@HidDencum
$query = "
    SELECT *
    FROM documents
    WHERE document_folder_id=$folder_id";
$result = mysql_query($query) or die(mysql_error());
$num = mysql_numrows($result);

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
        <thead>
            <tr>
                <th>Document</th>
                <th>Date</th>
                <th>Classification</th>
            </tr>
        </thead>

        <tbody>
            <?php
                $i=0;
                while ($i < $num) {
                $document_id = mysql_result($result,$i,"document_id");
                $document_number = mysql_result($result,$i,"document_number");

                $document_classification_id = mysql_result($result,$i,"document_classification_id");
                $document_classification_description = mysql_result($result,$i,"document_classification_description");
                            ?>
            <tr>
                <td><?php echo $document_number;  ?></td>

                <td><?php echo $document_date; ?></td>
                <td><?php echo $document_classification_description; ?>

                    <?php
                    // get indexes
                    $query2 = "SELECT * FROM documents_indexes_values
                                LEFT JOIN document_indexes ON value_index_id = value_id 
                                WHERE value_document_id = $document_id"; 
                    $result2 = mysql_query($query2) or die(mysql_error());

                    while($row2 = mysql_fetch_array($result2)){
                        echo "<br />";
                        echo $row2['index_description']. " - ". $row2['value_text'];
                        echo "<br />";
                    }
                    ?>
                </td>
                <? } ?>
            </tr>

            <?php
            $i++;
            }
            ?>
        </tbody>
    </table>