簡體   English   中英

Php 向 mysql 插入大量數據

[英]Php Insert Lots of data to mysql

嗨,我有一個包含 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">

根據您的領域,建議您制作多個表格

表格 - ID 1

n 個問題 - id - 類型 - 值 - label - 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);

請注意,這只是一個例子.. 沒有安全,沒有驗證,什么都沒有

這是一張酒店登記表,我拿走了。

好吧, Questions絕對應該是一個單獨的表格。 然后,我想,應該有一個Reservations表(包含hotel_id、room_id、customer_id、日期、有關預訂的其他信息)......然后是一個Customers表和Hotels表,以及Rooms表......也許還有更多。

在不知道整個字段列表的情況下,無法分辨。

我從來沒有在一張表中處理過 300 列。 我的建議是對列使用 JSON 或其他序列化數據技術。 在任何情況下,對相關字段進行分組都可以節省時間。

最近使用過;

列 = 值(變量 1:值 1-變量 2:值 2-變量 3:值 3)

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"

這一切都來自一個大的形式嗎? 如果是這樣,將所有數據放入一個數組中,將其序列化並將其記錄到文件中可能是有意義的。 然后使用更專業的工具分析數據。

如果您確實想將其放入數據庫中,則需要花一些時間來分解模式 - 我相信人們會提供幫助,但目前,定義太模糊,無法說出任何有意義的內容。

它可能會幫助您在前端表單和數據庫之間使用 map 框架。 Symfony 在表單生成方面非常出色 - 您只需將文件寫入 YAML 文件並運行命令即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM