2012-08-31 30 views
1

我想創建一些用戶可以爲某個主題創建表格,但只有一個主題表格並在該主題表格中的其他用戶將能夠添加到該主題表。允許用戶只爲每個主題創建一個表格,但只有一個表格

我需要主題表只能創建一次。因此,例如:

用戶A創建一個新的主題,這是一個關於橙子的新表。

然後其他用戶將能夠添加到該橙子表,但沒有其他用戶可以創建另一個名爲橙子的表。

我應該如何處理這件事?

讓用戶創建表格的代碼是什麼,但只有一次

也給用戶創建表的能力有多安全?

這裏有一些我可以讓用戶添加和顯示數據庫中的數據的代碼。

<?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> 

您的建議將是巨大的幫助!

+3

只需使用一張表。我不確定爲什麼你認爲你想這樣做,但在這種情況下,至少有六個原因是不好的方法。 –

+0

Yah同意你不希望最終有100個你要加入的表,你應該嘗試以不同的方式處理這個問題,將數據庫視爲具有靜態結構並且其中的數據將是動態。你應該編寫DDL作爲數據庫的開發者,而不是那種動態發生的事情(可能有例外,但這通常是真的),DML是你的基本CRUD insert select update delete應該用來修改數據。 – shaunhusain

回答

0

以下是讓用戶創建表只有一次代碼:

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 ; 
0

您可以檢查表中創建每個表之前存在。另外,當您創建表格時,請確保轉義字符串(表格名稱)並使其成爲小寫字母。在轉換字符串(表名)之後,你應該總是檢查表的存在性。

您可以在Google中搜索以瞭解更多關於檢查表是否存在的信息等。

相關問題