刚接触PHP,需要做一个简单的项目。 项目背景 学校中老师或多或少的都需要统计学生的各种资料,除了像问卷星,金数据这样的第三方平台,学校内部暂时没有供自己人用的统计平台。 主要功能如下: 1. 老师根据自己需要统计的信息创建表单。 2. 学生填写表单,在表单中限制每个学生只允许有一条数据,如果填写错误,以最后一次提交数据为准。 3. 学生填写必须实名,本系统会调用易班接口,获取学生的实名信息。 4. 老师在后台可以导出学生填写的表单内容。 其中我写了2、3,4.

功能2的核心部分为,循环遍历数据库中表的所有字段并显示到前端

  • 数据库链接。
1
2
3
4
5
6
7
8
9
$servername = "localhost";  
$username = "root"; 
$password = "xxxxxx";
$con = mysql_connect($servername, $username, $password);
if (!$con)
{
            die('Could not connect: ' . mysql_error());
}
mysql_select_db("yibiao", $con);
  • 通过表id获取表名
1
2
3
4
5
6
7
$tid = $_GET["tid"];
$sql = "SELECT `name` FROM `tablename` where id=".$tid;//查询id
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
  $table_name = $row['name'];
}
  • 查询表结构并将字段保存到数组中
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$sql_tbcolumns = "SHOW FULL COLUMNS FROM $table_name";//显示数组结构
$recolumns = mysql_query($sql_tbcolumns);
$table_columns = array();//将表中的字段存放到table_columns中
while($row1 = mysql_fetch_array($recolumns))
{
  array_push($table_columns,$row1['Field']);
}
//读取数组长度,方便后面输出
$columns_count = count($table_columns);

  • 将表中的字段显示到前端,用get提交
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- Form表单提交 -->
<form action="value.php" method="get">
<?php
    $i = 0;
    while($i<$columns_count){
        echo    '<div class="zdy zwy1">';
        echo        '<p>'.$table_columns[$i].'</p>';
        echo        '<p>';
        echo            '<div class="sousuo1">';
        echo                '<input name="tb'.$i.'" "type="text" class="biaodan-input1" placeholder="请输入你的'.$table_columns[$i].'">
                        <img src="assets/img/xinghao.png" alt="星号">';
        echo            '</div>';
        echo        '</p>';
        echo    '</div>';
        $i++;
    }
?>
<!-- 隐藏域 将字段总数(columns_count) 表名(table_name) 用户真实姓名(user_e_realname)传到value.php -->
<?php 
echo '<input name="columns_count" type="hidden" value="'.$columns_count.'">';
echo '<input name="table_name" type="hidden" value="'.$table_name.'">';
echo '<input name="user_e_realname" type="hidden" value="'.$user_e_realname.'">';       
?>
    <div class="footerj1">
        <button class="btn btn-info" type="submit" >确认提交</button>
    </div>
</form>


前端显示就这样啦~~~ 就酱紫啦