我必须编写一个在两列中显示多列值表的应用程序(我之前发布了一个关于此的问题,但我已经做了一些研究,这提高了我的观点)。每个人在表中都有一个条目。任务是在两列表中显示这些列中的值。
这些列是个人已注册的主题。IE。
MATH111,MATH112,ENG111,ENG112
等等。这些列本质上是动态的,因为它们基于正在加载到数据库中的 Excel 工作表中的列标题。鉴于此,我无法在我的 html 中“硬编码”表格的名称
<th>MATH111</th><th>MATH112</th>........
我需要在运行时获取列名,显示列名“和”其中包含的值。表中唯一的固定值是学生的 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代表的课程中获得的分数。
我需要以下列格式在网页中显示它们:
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);
从这里开始......我需要一些提示:
我想显示“ BOTH ”字段名称和字段值。所以这就是我打算这样做的方式。如果我错了,请纠正我。
$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 函数返回一个具有列属性的对象......我还没有弄清楚如何访问。对此的任何帮助也将不胜感激。所以回到我的主要问题。我上面显示的代码是否足以并排显示列名及其值?谢谢