您好 我有一个包含300多个字段的评估表,其中有几个部分。我不想在mytable中制作300行。有人可以给我一个方法来保存我的数据,因为它需要很容易回溯来制作一些统计数据。
感谢。
编辑: 像那样有很多不同部分的东西
<form action="" method="post" id="OKF" name="OKF" autocomplete="off">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="25%" class="tableft"><strong>Date </strong></td>
<td width="25%"><input name="controldate" type="number" id="controldate" /></td>
<td width="25%"><strong>Start Time</strong></td>
<td><input type="text" name="startime" id="startime" class="required"/></td>
</tr>
<tr>
<td class="tableft"><strong>Controller</strong></td>
<td><input type="text" name="controller" id="controller" /></td>
<td><strong>End Time</strong></td>
<td><input type="text" name="endtime" id="endtime" class="required"/></td>
</tr>
<tr>
<td class="tableft"><strong>Hotel Name</strong></td>
<td><input type="text" name="otelname" id="otelname" class="required"/></td>
<td><strong>Company Name</strong></td>
<td><input type="text" name="compres" id="compres" class="required"/></td>
</tr>
<tr>
<td class="tableft"><strong>No Stars</strong></td>
<td><input type="text" name="stars" id="stars" class="required"/></td>
<td><strong>No Room</strong></td>
<td><input type="text" name="roomnum" id="roomnum" class="required"/></td>
</tr>
</table>
<br>
<h1>Part 1</h1>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="40%" class="tabtopmid">Question</td>
<td width="4%" class="tabtopmid"></td>
<td width="17%" class="tabtopmid"><strong>Point</strong></td>
<td width="37%" class="tabtopmid"><strong>Comment</strong></td>
</tr>
<tr>
<td>Question 1</td>
<td>20</td>
<td><input name="puan_1" id="puan_1" type="text"></td>
<td><textarea name="cmt_1" id="cmt_1"></textarea></td>
</tr>
<tr>
<td>Question 2</td>
<td>20</td>
<td><input name="puan_2" id="puan_2" type="text"/></td>
<td><textarea name="cmt_2" id="cmt_2"></textarea></td>
</tr>
<tr>
<td>Question 3</td>
<td>20</td>
<td><input name="puan_3" id="puan_3" type="text"/></td>
<td><textarea name="cmt_3" id="cmt_3"></textarea></td>
</tr>
<tr>
<td>Question 4</td>
<td>20</td>
<td><input name="puan_4" id="puan_4" type="text"/></td>
<td><textarea name="cmt_4" id="cmt_4"></textarea></td>
</tr>
<tr>
<td>Question 5</td>
<td>20</td>
<td><input name="puan_5" id="puan_5" type="text"/></td>
<td><textarea name="cmt_5" id="cmt_5"></textarea></td>
</tr>
</table>
<input name="submit" type="submit" id="submit" value="Submit" alt="Submit" title="Submit">
答案 0 :(得分:3)
根据您的字段,建议您制作多个表格
形式 - ID 1
<磷>氮 问题 - ID - 类型 - 价值 - 标签 - form_id然后您可以将用户的答案存储在第三个表中
更容易就是像formname [foobar],formname [foobar_1]等名称
然后你可以做类似的事情:
$sql = "INSERT INTO answers (name, value) VALUES ";
foreach ($_POST['formname'] as $key => $value) {
$sql .= "('".$key."', '".$value."'),";
}
$sql = substr($sql, 0, -1).";";
mysql_query($sql);
请注意,这只是一个例子..没有安全感,没有价值,没有什么
答案 1 :(得分:1)
所以这是酒店登记表,我接受了。
嗯,Questions
绝对应该是一个单独的表。然后,我想,应该有Reservations
的表(包含hotel_id,room_id,customer_id,日期,有关预订的其他信息)..然后是Customers
表和Hotels
表,以及Rooms
表......可能还有更多。
如果不知道整个字段列表,就无法分辨。
答案 2 :(得分:0)
我从未在一张表中使用过300列。我的建议是使用JSON或列的其他序列化数据技术。在任何情况下,分组相关字段都可以节省时间。
最近使用过;
column = value(variable1:value1-variable2:value2-var3:val3)
adv_room_numbers(text) = "Room:2-Bedroom:3-Kitchen:1-Dining Room:1,etc..room:1,etc..room:1,etc..room:1" // I can use explode() to extract fields
adv_online(enum) = "active"
adv_contact(text) = "Name:Name Surname-Tel:65465-City:Cityname-Address:address details"
答案 3 :(得分:0)
这一切都来自一个大的形式吗?如果是这样,将所有数据放入一个数组,串行化并将其记录到文件中可能是有意义的。然后使用更专业的工具分析数据。
如果你想把它放到一个数据库中,你需要花一些时间来打破模式 - 我相信人们会帮助,但目前,这个定义过于含糊,无法说出任何有意义的内容。
使用框架在前端表单和数据库之间进行映射可能会有所帮助。 Symfony非常适合表单生成 - 您只需将文件写入YAML文件并运行命令。