0

多次元配列を動的に返す方法を学ぶために多くの作業を行ってきましたが、理解できないのは、それらをネストする方法です。

私は2つのテーブルを持っており、それぞれが同じ形式です:ID、名前。

表1:SSC-sscid-sscname

表2:SRV-srvid-srvname

私がやろうとしているのは、表1のリストの各項目の下にある表2のすべての項目を印刷することです。

表1の項目はヘッダーであり、表2の項目はチェックボックス(値としてsrvidを使用)およびlabel(srvname)として返されます。

すべて一緒に印刷することはできますが、それはです。結果の1つの巨大なリストとそれは

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

まったくきれいではありません(私がこれまでに到達するのは進歩ですが)。

クエリを実行して結果を取得すると、コードは次のようになります。

今、私は概念re:the databaseテーブルの設計についていくつか追加の考えを持っていますが、私が読んだすべては、それらが本当に独自のテーブルにある必要があり、キーによって参照できるはずであることを示しています一方のテーブルからのキーともう一方のテーブルからのキー(最終的にはユーザー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 に答える