0

我在学习如何动态返回多维数组方面做了大量工作——但我似乎不知道如何嵌套它们。

我有两个表,每个表都有相同的格式:ID、名称。

表一:SSC-sscid-sscname

表二:srv-srvid-srvname

我要做的是在表一列表中的每个项目下打印表二中的所有项目。

表一项目是标题,表二项目作为复选框(以 srvid 作为值)和标签(srvname)返回。

我可以把它全部打印在一起,但它是一个。一个巨大的结果列表,它在一个

| checkbox | table 1: name | table 2: name | format. 

一点也不漂亮(尽管能走到这一步对我来说是一个进步)。

运行查询并获得结果后,我的代码如下所示:

现在,我对 re:the database tables go 的概念设计有了一些额外的想法,但是我读到的所有内容都表明它们确实需要在自己的表上,并且它们应该能够被 key 引用从一个表和另一个表的键(最终在一个带有用户 ID 引用的联合表中结束)因为它们是数字索引的,我不知道为什么这对我来说是个问题;但是我似乎无法让它正常工作。

我应该提到,当我更改代码以尝试使 ssc_name 跨越 2 列并使其更像标题时,它会为每个复选框/srv 行返回标题行,而不是为所有复选框/srv 行返回标题行。

if($result) {
    echo '<table border="1" align="center" cellspacing="3" cellpadding="3" width="300">
    <tr><th colspan="2"><h3>Options</h3></th></tr>
    <tr><td></td><td align="left"><b>Services</b></td></tr>';
    $numfields = mysql_num_fields($result);
    $data = array();
    $flist = array();
    for($i=0;$i<$numfields;$i++)$flist[] = mysql_field_name($result,$i);
    $data[0] = $flist;
    while($row = mysql_fetch_assoc($result)) {
        $data[] = $row;
        echo '<tr><td colspan="2" align="center"><b>' . $row['ssc_name'] .'</b><td></tr>
        <tr><td align="center"><input type="checkbox" value="'. $row['ssv_id'] .'" / </td>
        <td align="left">' . $row['ssvname'] . '</td>
        </tr>';
    }
    echo '</table>';
}

谁能帮我解决这个问题,好吗?

4

1 回答 1

0

>你在这条线上缺少一个

<tr><td align="center"><input type="checkbox" value="'. $row['ssv_id'] .'" / </td>

应该

<tr><td align="center"><input type="checkbox" value="'. $row['ssv_id'] .'" /></td>

您可能可以通过更好的格式获得一些东西......

<?php

    if ($result) {      
        echo <<<EOD
<table border="1" align="center" cellspacing="3" cellpadding="3" width="300">
    <tr>        
        <th colspan="2"><h3>Options</h3></th>       
    </tr>       
    <tr>    
        <td></td>       
        <td align="left"><b>Services</b></td>       
    </tr>
EOD;
        while ($row = mysql_fetch_assoc($result)) {         
            echo <<<EOD
    <tr>        
        <td colspan="2" align="center"><b>{$row['ssc_name']}</b><td>            
    </tr>       
    <tr>        
        <td align="center"><input type="checkbox" value="{$row['ssv_id']}" /></td>          
        <td align="left">{$row['ssvname']}</td>         
    </tr>           
EOD;
        }       
        echo '</table>';
    }

?>

而且我不确定这些阵列中有哪些业务。

于 2012-05-30T20:32:31.610 回答