Php 使用HTML选项从MySQL插入和选择多个表
类别Php 使用HTML选项从MySQL插入和选择多个表,php,mysql,sql,options,Php,Mysql,Sql,Options,类别 电子 杂项 免费的东西 寻找 电器 名字 描述 我的数据库看起来像这样。。。 表\u自由名称、日期、消息 表\u电气名称、日期、信息 表\u杂项名称、日期、消息 表\u应用程序名称、日期、消息 表\u Iso-名称、日期、消息 这是我正在努力工作的表格。我想从“选择”选项中选择一个表,然后将信息插入数据库中的特定表中。 现在我可以将信息存储并回显到一个表中,但我对PhP和MySQL非常陌生。我找遍了,但是找不出来。。。任何帮助都是有用的。 我希望结果是在下拉菜单中选择表,然后所有信
电子
杂项
免费的东西
寻找
电器
名字
描述
我的数据库看起来像这样。。。 表\u自由名称、日期、消息
表\u电气名称、日期、信息
表\u杂项名称、日期、消息
表\u应用程序名称、日期、消息
表\u Iso-名称、日期、消息
这是我正在努力工作的表格。我想从“选择”选项中选择一个表,然后将信息插入数据库中的特定表中。 现在我可以将信息存储并回显到一个表中,但我对PhP和MySQL非常陌生。我找遍了,但是找不出来。。。任何帮助都是有用的。 我希望结果是在下拉菜单中选择表,然后所有信息都存储在下拉菜单中选择的表中 下面是我的php im,用于将信息发送到一个表
<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>
您只需要将表名作为变量传递,就像其他两个字段一样
大概是这样的:
<?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);
?>
这会让事情变得明朗一点吗?试试这个:
$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}')";
实现这一点的最简单方法是更改HTML中选项的值以匹配表名
例如:将value=“Electronics”更改为:value=“table\u Elec-Name”
确保编写一些代码以防止提交空选项,因为您有:
html中的选项名称=“值=”“”
现在,在php端,获取选项的发布值并将其存储到变量中。
$mytable=$\u POST['categories']
现在将sql更改为:
<?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);
}
?>
应该没问题。我试试看。如果是这么简单,我会很生气的。在过去的11个小时里我一直在搞这个哈哈。会让你知道的,谢谢!似乎很成功,只是还没有看到数据库中的信息。我再给它10分钟左右。谢谢很高兴你成功了!请随时询问您是否需要更多帮助其他人的脚本工作完美。我想了一下,但是我没有输入变量什么的。谢谢你的帮助!你也是对的。我不知道如何在空选项lol上编写代码。我知道它将需要它,但我需要做一些研究
$sql="INSERT INTO `".$mytable."` (Name, Message)
VALUES ('Name', 'Message')";