允许用户创建一个新表,但每个主题只能创建一个表


Allow users to create a new table but one table for each topic only

我正在尝试创建一些东西,用户可以为某个主题创建一个表,但只有一个主题表和该主题表中的其他用户可以添加到该主题表。

我只需要创建一次主题表。例如:

用户A创建了一个新的主题,它是一个关于桔子的新表格。

然后其他用户可以添加到桔子表中,但no其他用户可以创建另一个名为桔子的表。

我该如何处理这件事?

让用户只创建一次表的代码是什么?

此外,让用户能够创建表的安全性如何?

下面是我的一些代码,它允许用户添加和显示数据库中的数据。

    <?php
    include 'connection.php';
    $query = "SELECT * FROM people";
    $result = mysql_query($query);
    While($person = mysql_fetch_array($result)) {
        echo "<h3>" . $person['Name'] . "</h3>";
        echo "<p>" . $person['Description'] . "</p>";
        echo "<a href='"modify.php?id=" . $person['ID']. "'">Modify User</a>";
        echo "<span> </span>";
        echo "<a href='"delete.php?id=" . $person['ID']. "'">Delete User</a>";
    }
?>
<h1>Create a User</h1>
<form action="create.php" method="post">
    Name<input type ="text" name="inputName" value="" /><br />
    Description<input type ="text" name="inputDesc" value="" />
    <br />
    <input type="submit" name="submit" />
</form>

你的建议将大有帮助!

下面是让用户只创建一次表的代码:

CREATE TABLE IF NOT EXISTS `orange` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `email` varchar(255) NOT NULL,
  `pass` varchar(255) NOT NULL,  
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ;

您可以在创建每个表之前检查表是否存在。此外,在创建表时,请确保转义字符串(表名)并使其小写。在像这样转换字符串(表名)之后,您应该始终检查表是否存在。

您可以在谷歌中搜索以了解更多关于检查表是否存在等的信息。