1

複数列の値テーブルを 2 つの列で表示するアプリケーションを作成する必要があります (以前にそれに関する質問を投稿しましたが、いくつかの調査を行って視野を研ぎ澄ませました)。各個人はテーブルに 1 つのエントリを持ちます。タスクは、これらの列の値を 2 列のテーブルに表示することです。

列は、個人が登録している科目です。すなわち。

       MATH111,MATH112,ENG111,ENG112

これらの列は、データベースにロードされる Excel シートの列見出しに基づいているため、本質的に動的です。これに照らして、HTMLでテーブルの名前を「ハードコード」することはできません

          <th>MATH111</th><th>MATH112</th>........

実行時に列名を取得する必要があり、列の名前を表示し、「AND」に含まれる値を表示します。テーブル内の唯一の固定値は、生徒の reg_no です。他のすべての値は任意です (テーブルの列数を含む)。

テーブルの基本構造は次のとおりです。

       id int auto_increment primary key,
       reg_no varchar(25),
       arbitrary col1 int,
       arbitrary col2 int,
       arbitrary col3 int,
       arbitrary col4 int,
       arbitrary  colx....

上記に沿って、任意の col1 を照会すると、任意の col1 が表すコースで取得されたスコアが取得されます。

次の形式で Web ページに表示する必要があります。

      echo '<table><tr><th>Course</th><th>Score</th></tr>';

テーブルからデータを取得するための私のクエリは

         $sql="select * from '.$table_name.' where reg_no='.$reg_no.';
    ...................................(blah...)

良い部分は、テーブル内の列の数を知っていることです(この数字はテーブルの作成中に保存されるため)。少し調査したところ、「mysql_field_name」関数を使用できることがわかりました。または mysqli_fetch_field 関数。

mysql_field_name は次のように使用されます (私の意見では、この方が簡単です)。

        $result=mysql_query($sql, $link); 
        $row=mysql_fetch_array($result); 

ここから...いくつかのヒントが必要になります:

「両方」を表示したいフィールド名とフィールドの値。これが私がやろうとしている方法です。間違っている場合は修正してください。

$numberofcolumnsintable=$numberofcolumnsintable++;

 while(int i=1;i<=$numberofcolumnsintable;$i++)
        (I am starting from the index 1(second column because i do not want to display the reg_no or its data)
     {   echo"<tr><td>".mysql_field_name($result,$i)."</td>"<td>".$result[$i]."</td></tr>";
      }
echo "</table>";

私はそれを正しくやっていますか?私はmysqli関数の方が快適です...しかし、列のプロパティを持つオブジェクトを返すmysqli_fetch_field関数を使用しています..アクセス方法はまだわかりません。それについての助けにも感謝します。それでは、私の主な質問に戻ります。上記のコードは、列名とその値を並べて表示するのに十分ですか?.Thanks

4

1 に答える 1

3

mysql(i)_fetch_arrayの代わりにmysql(i)_fetch_assocを使用します。そうすれば、列名と値の両方を含む連想配列を取得できます。次に、単純な foreach でそれを行います。

$rows = mysqli_query('select * from tbl');
foreach($rows as $column => $value) {
    echo $column . ": " . $value . "<br />";
}

$rows次のようになります。

array(
    array('reg_no' => '321', 'col1' => 'foo'),
    array('reg_no' => '654', 'col1' => 'knox')
);
于 2012-07-21T18:36:46.270 に答える