【问题标题】:How do I use a web form to enter data to mysql db using an array?如何使用 Web 表单使用数组向 mysql db 输入数据?
【发布时间】:2011-05-12 18:49:35
【问题描述】:

这是目标表:

**trophies**
game_name
tr_name
tr_description
tr_color
tr_ach_value

这是表格:

    <form action="update.php" method="post">
Game Name:  <input name="game_name" type="text" size="25" maxlength="255" /><br></br>
Release Date:  <input name="release_date" type="text" size="25" /><p></p>
</p>
<p>&nbsp;</p>
<p>Trophies:</p>
Trophy Name:    <input name="tr_name" type="text" size="50" maxlength="255" /><br/>
Descripton:     <input name="tr_desc" type="text" size="50" maxlength="255" /><br/>
Trophy Color:   <select name="tr_color">
  <option value="Bronze">Bronze</option>
  <option value="Silver">Silver</option>
  <option value="Gold">Gold</option>
  <option value="Platinum">Platinum</option>
  <option value="Hidden">Hidden</option>
</select>
Points: <input name="tr_ach_value" type="text" size="4" maxlength="4" /><p></p>

Trophy Name:    <input name="tr_name" type="text" size="50" maxlength="255" /><br/>
Descripton:     <input name="tr_desc" type="text" size="50" maxlength="255" /><br/>
Trophy Color:   <select name="tr_color">
  <option value="Bronze">Bronze</option>
  <option value="Silver">Silver</option>
  <option value="Gold">Gold</option>
  <option value="Platinum">Platinum</option>
  <option value="Hidden">Hidden</option>
</select>
Points: <input name="tr_ach_value" type="text" size="4" maxlength="4" /><p></p>

Trophy Name:    <input name="tr_name" type="text" size="50" maxlength="255" /><br/>
Descripton:     <input name="tr_desc" type="text" size="50" maxlength="255" /><br/>
Trophy Color:   <select name="tr_color">
  <option value="Bronze">Bronze</option>
  <option value="Silver">Silver</option>
  <option value="Gold">Gold</option>
  <option value="Platinum">Platinum</option>
  <option value="Hidden">Hidden</option>
</select>
Points: <input name="tr_ach_value" type="text" size="4" maxlength="4" /><p></p>


Trophy Name:    <input name="tr_name" type="text" size="50" maxlength="255" /><br/>
Descripton:     <input name="tr_desc" type="text" size="50" maxlength="255" /><br/>
Trophy Color:   <select name="tr_color">
  <option value="Bronze">Bronze</option>
  <option value="Silver">Silver</option>
  <option value="Gold">Gold</option>
  <option value="Platinum">Platinum</option>
  <option value="Hidden">Hidden</option>
</select>
Points: <input name="tr_ach_value" type="text" size="4" maxlength="4" /><p></p>

<input name="submit" type="button" value="submit" />
</form>

我正在尝试将具有相同游戏名称的多个奖杯记录插入到表奖杯中。我会为此使用数组吗?如果是这样,你能给我举个例子吗?

提前致谢。

【问题讨论】:

    标签: php mysql database arrays


    【解决方案1】:

    这样命名您的输入字段

    Trophy Name:    <input name="trophy[0][name]" type="text" size="50" maxlength="255" /><br/>
    Descripton:     <input name="trophy[0][desc]" type="text" size="50" maxlength="255" /><br/>
    Trophy Color:   <select name="trophy[0][color]">
      <option value="Bronze">Bronze</option>
      <option value="Silver">Silver</option>
      <option value="Gold">Gold</option>
      <option value="Platinum">Platinum</option>
      <option value="Hidden">Hidden</option>
    </select>
    Points: <input name="trophy[0][ach_value]" type="text" size="4" maxlength="4" /><p></p>
    

    只需将每组新数据的数字加一即可。 希望对您有所帮助。

    编辑:

    PHP 代码如下:

    <?php
        foreach($_POST['trophy'] as $trophy) {
            $sql = "INSERT INTO trophies (game_name, tr_name, tr_description, tr_color, tr_ach_value) VALUES ('".$_POST['game_name']."', '".$trophy['name']."', '".$trophy['desc']."', '".$trophy['color']."', '".$trophy['ach_value']."')";
            mysql_query($sql);
        }
    ?>
    

    【讨论】:

    • 谢谢各位。然后将数组数据插入表中的代码是什么?
    • 会是:code sql = 'INSERT INTO trophies (game_name, tr_name, tr_description, tr_color, tr_ach_value) VALUES (game_name, tr_name, tr_desc, tr_color, tr_ach_value)'; code
    • 没问题 :) 并且不要忘记在将值插入数据库之前对其进行清理;-) 请参阅此处了解详细信息w3schools.com/PHP/php_filter.asp
    【解决方案2】:

    使用 name[] 作为字段名

      <imput name="tr_name[]" ...
    

    在 php 中,名称中使用 [] final 的所有字段都是服务器端的数组,因此在您的 php 中,您可以在 $_POST['tr_name'] 变量等中迭代您的倍数 tr_name。

    【讨论】:

    • 是的,但生成的 $_POST 数组有点未分组。只是个人喜好我喜欢我的值一起出现在一个数组中;-)
    猜你喜欢
    • 2019-01-14
    • 2013-05-21
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多