【问题标题】:Inserting and Selecting multiple tables from MySQL using an HTML options使用 HTML 选项从 MySQL 中插入和选择多个表
【发布时间】:2014-06-15 12:35:18
【问题描述】:
 <form action="postad1.php" method="post">
 <p>Category</p>         
 <select name="categories">
 <option name="" value=""><br></option>
    <option name="Electronics" value="Electronics">Electronics<br></option>
    <option name="Misc" value="Misc">Miscellaneous<br><br></option>
    <option name="Free" value="Free">Free Stuff<br></option>
    <option name="ISO" value="ISO">Looking For<br></option>
    <option name="Appliances" value="Appliances">Appliances<br></option>
    </select>

 <p>Name</p>
 <input type="text" name="Name"><br>
 <p>Descriptiom</p>
    <textarea type="text" name="Message" cols="40" rows="5" ></textarea><br>
    <input type="date" name="date">
    <input type="submit">
    </form>

我的数据库看起来像这样... table_Free-名称、日期、消息
table_Elec-姓名、日期、消息
table_Misc-名称、日期、消息
table_Appl-名称、日期、消息
table_Iso -名称、日期、消息

这是我想要开始工作的表格。我想从我的“选择”选项中选择一个表,然后将信息插入到我数据库中的特定表中。 现在我可以将信息存储并回显到一个表中,但我对 PhP 和 MySQL 还是很陌生。我已经搜索过,但无法弄清楚......任何帮助都会很有用。 我希望结果是在下拉菜单中选择表格,然后所有信息都存储在下拉菜单中选择的表格中。

这是我的 php im 用于将信息保存到一张表中。

 <?php

 $Name = mysqli_real_escape_string($con, $_POST['Name']);
 $Message = mysqli_real_escape_string($con, $_POST['Message']);
 $sql="INSERT INTO Free (Name, Message)
 VALUES ('Name', 'Message')";
 if (!mysqli_query($con,$sql)) {
     die('Error: ' . mysqli_error($con));
  } 

  echo "<br>$Name <br> $Message <br> was added to the database."; 
  echo '<br>Check your post 
  <a href="#">here</a>';
  mysqli_close($con);
  ?>

【问题讨论】:

    标签: php mysql sql options


    【解决方案1】:

    您只需将表的名称作为变量传递,就像您的其他 2 个字段一样。

    类似这样的:

    $table = mysqli_real_escape_string($con, $_POST['categories']);
    $Name = mysqli_real_escape_string($con, $_POST['Name']);
    $Message = mysqli_real_escape_string($con, $_POST['Message']);
    $sql="INSERT INTO `{$table}` (Name, Message)
    VALUES ('{$name}', '{$Message}')";
    

    这样是不是有点清楚了?

    【讨论】:

    • 我试试。如果就这么简单,我会很生气。在过去的 11 个小时里,我一直在搞砸这个哈哈。会告诉你的,谢谢!
    • 好像成功了,只是还没有看到数据库中的信息。我再给它10分钟左右。谢谢!
    • 很高兴它为你解决了!如果您需要更多帮助,请随时询问
    【解决方案2】:

    完成此操作的最简单方法是更改​​ HTML 中的选项值以匹配您的表名。

    例如:将 value="Electronics" 更改为:value="table_Elec-Name"

    请务必编写一些代码来防止提交空选项,因为您有: 您的 html 中的选项名称="" value=""

    现在,在 php 端,获取选项的发布值并将其存储到变量中。 $mytable = $_POST['categories']

    现在将您的 sql 更改为:

    $sql="INSERT INTO `".$mytable."` (Name, Message)
     VALUES ('Name', 'Message')";
    

    应该可以正常工作。

    【讨论】:

    • 你也是对的。我不知道如何在空选项上编写代码大声笑。我知道它会需要它,但我需要做一些研究
    【解决方案3】:

    试试这个:

    <?php
    
    $Name = mysqli_real_escape_string($con, $_POST['Name']);
    $Message = mysqli_real_escape_string($con, $_POST['Message']);
    
    if(isset($_POST['categories']) && $_POST['categories'] == "")
    {
        $sql = "";
        switch($_POST['categories'])
        {
            case "Electronics":
                $sql = "INSERT INTO Elec (Name, Message) VALUES ('$Name', '$Message')";
                break;
            case "Misc":
                $sql = "INSERT INTO Misc (Name, Message) VALUES ('$Name', '$Message')";
                break;
            case "Free":
                $sql = "INSERT INTO Free (Name, Message) VALUES ('$Name', '$Message')";
                break;
            case "ISO":
                $sql = "INSERT INTO Iso (Name, Message) VALUES ('$Name', '$Message')";
                break;
            case "Appliances":
                $sql = "INSERT INTO Appl (Name, Message) VALUES ('$Name', '$Message')";
                break;
        }
    
        if (!mysqli_query($con,$sql)) {
            die('Error: ' . mysqli_error($con));
        }
    
        echo "<br>$Name <br> $Message <br> was added to the database.";
        echo '<br>Check your post  <a href="#">here</a>';
        mysqli_close($con);
    }
    ?>
    

    【讨论】:

    • 其他人的脚本运行良好。我想到了,但我错过了输入变量或其他东西。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 2013-12-28
    • 2016-07-23
    相关资源
    最近更新 更多