微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何从表单中选择要上传到Mysql的表

PHP初学者在这里&我想问一个关于使用表单将信息上传数据库的问题.
我有一个包含48个不同类别的网站. www.ralphslocal.com.如果您访问该站点,您将看到每个类别我从数据库中的不同表中提取信息.

用于填充表格的表单缺少一种选择我要上传到的表格的方法.此时,当我想上传到另一个表时,我需要更改“insert.PHP”中的表名

我需要在表单上选择要上传到的表格吗?
如果我不清楚我道歉.我感谢您提供的任何帮助.

这是我的表单的代码

<form action="insert.PHP" method="POST">
<p>Retailer:&#160;&#160;&#160;&#160;<input type="text" name="retailer"></p>
<p>WebSite:&#160;&#160;&#160;<input type="text" name="website"></p>
<p>City:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<select name="city">
                       <option value="BellaVista">BellaVista</option>
                       <option value="Bentonville">Bentonville</option>
                       <option value="Centerton">Centerton</option>
                       <option value="Farmington">Farmington</option>
                       <option value="Fayetteville">Fayetteville</option>
                       <option value="Lowell">Lowell</option>
                       <option value="Rogers">Rogers</option>
                       <option value="SpringDale">SpringDale</option>
                       <option value="Tontitown">Tontitown</option>
                       <option value="West Fork">West Fork</option>
                                                           </select></p>
<p>Phone:&#160;&#160;&#160;&#160;&#160;&#160;<input type="text" name="phone"></p>
<input type="submit">
</form>

这是我的“insert.PHP文件代码

<?PHP require 'connect.PHP'; ?>

<?PHP
$sql="INSERT INTO garden_nursery (Retailer,WebSite,City,Phone)
VALUES
('$_POST[retailer]','$_POST[website]','$_POST[city]','$_POST[phone]')";

if (!MysqLi_query($con,$sql))
{
die('Error: ' . MysqLi_error($con));
}{
echo "1 record added";
}
MysqLi_close($con);
?>

非常感谢!
拉尔夫

解决方法

你的问题的答案很简单.将其添加到您的表单:

<select name='data_table'>
  <option value='appliances'> Appliances </option>
  <option value='garden_nursery'> Garden Nursery </option>
  <option value='table_name_formated'> Table Name </option> 
  <!-- and so on for all of youre tables -->
 </select>

在insert.PHP中,将您为$sql赋值的行更改为:

$sql="INSERT INTO $_POST[data_table] (Retailer,Phone) 
VALUES ('$_POST[retailer]','$_POST[phone]')";

补充说明:
访问您的网站后,如果我能正确看到它,您制作了38个不同的表,具有相同的数据结构.为什么不在一个名为table的alldata(或类似的东西)中再添加一列,它存储相应的类别?这样,以后添加新类别时,无需始终创建新表.

附加说明2:
在尝试将其存储在数据库中之前,逃避用户提供的输入也会更安全,就像tadman所说的那样.将此添加到您的insert.PHP文件中,在您为$sql赋值的位置.

$datatable=MysqLi_real_escape_string($con,$_POST['data_table']);
$retailer=MysqLi_real_escape_string($con,$_POST['retailer']);
$website=MysqLi_real_escape_string($con,$_POST['website']);
$city=MysqLi_real_escape_string($con,$_POST['city']);
$phone=MysqLi_real_escape_string($con,$_POST['phone']);
$sql="INSERT INTO $datatable (Retailer,Phone) VALUES ('$retailer','$website','$city','$phone')";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐