php - 如何从 PHP 向数据库中插入多行数据

标签 php mysql

我目前正在用 PHP 创建一个表,显示我数据库中一个表中的所有数据行。之后,我想将 PHP 表中的所有行保存到新的数据库表中。但问题是,保存后,只有最后一行会被存入数据库中的新表中,早期的其他行不会被保存。有人能帮我吗。我想尝试 foreach 但有人可以教我吗。

<table border="1" align="center" cellspacing="0">
<tr>
  <td colspan="12"><div align="center">
      <h3><strong>BOOKS</strong></h3>
  </div></td>
</tr>
<tr>
  <td width="80"><div align="center">Code</div></td>
  <td width="40"><div align="center">No</div></td>
  <td width="250"><div align="center">Name</div></td>
  <td width="100"><div align="center">Publisher</div></td>
  <td width="80"><div align="center">Price</div></td>
  <td width="60"><div align="center">Quantity</div></td>
</tr>

<?php do { ?>
  <tr>
    <td><div align="center">
        <input name="student_no" type="hidden" id="student_no" value="<?php echo $row_UserDetails['student_no']; ?>" />
        <input name="book_code" type="text" id="book_code" value="<?php echo $row_book_booking_list['book_code']; ?>" size="8" readonly="readonly" />
    </div></td>
    <td><div align="center">
        <input name="book_no" type="text" id="book_no" value="<?php echo $row_book_booking_list['book_no']; ?>" size="1" readonly="readonly" />
    </div></td>
    <td><div align="center">
        <input name="book_name" type="text" id="book_name" value="<?php echo $row_book_booking_list['book_name']; ?>" size="31" readonly="readonly" />
    </div></td>
    <td><div align="center">
        <input name="book_publisher" type="text" id="book_publisher" value="<?php echo $row_book_booking_list['book_publisher']; ?>" size="10" readonly="readonly" />
    </div></td>
    <td><div align="center">
        <input name="book_price" type="text" id="book_price" value="<?php echo $row_book_booking_list['book_price']; ?>" size="7" readonly="readonly" />
    </div></td>
    <td><div align="center">
      <select name="book_quantity" id="book_quantity">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
      </select>
    </div></td>
  </tr>
<?php } while ($row_book_booking_list = mysql_fetch_assoc($book_booking_list)); ?>
</table>

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO book_booked_list (student_no, book_code, book_no, book_name, book_publisher, book_price, book_quantity) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                   GetSQLValueString($_POST['student_no'], "int"),
                   GetSQLValueString($_POST['book_code'], "text"),
                   GetSQLValueString($_POST['book_no'], "text"),
                   GetSQLValueString($_POST['book_name'], "text"),
                   GetSQLValueString($_POST['book_publisher'], "text"),
                   GetSQLValueString($_POST['book_price'], "double"),
                   GetSQLValueString($_POST['book_quantity'], "int"));

mysql_select_db($database_book_con, $book_con);
$Result1 = mysql_query($insertSQL, $book_con) or die(mysql_error());
}

最佳答案

要将所有行从 source_table 复制到 book_booked_list 表,只需执行以下查询:

INSERT INTO book_booked_list 
    (student_no, book_code, book_no, book_name, book_publisher,
       book_price, book_quantity)
SELECT 
    student_no, book_code, book_no, book_name, book_publisher, 
       book_price, book_quantity
FROM source_table

source_table 替换为您从中复制数据的表的名称。

关于php - 如何从 PHP 向数据库中插入多行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39009636/

相关文章:

javascript - 我需要 php 函数来获取当前用户位置,例如街道名称

php - 使用 php 脚本的电子邮件管道

php - 一般错误 : 1366 Incorrect integer value with Doctrine 2. 1 和 Zend Form 更新

MYSQL 对多个条目按位或

php - imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error - Laravel

php - 两个不相关的表,具有匹配和反对功能

php - 选择计数 Max(value) 与 where

MySQL 查询以从表中显示一个人的最后 8 个运动结果(例如 W、L 或 D)

mysql - 一个基本的 sql 查询示例

mysql - 有没有办法将单个字段值拆分为多列