我被困在如何爲我的網站上的每個帖子創建標籤。我不知道如何將標籤添加到數據庫中。 目前... 我有3個表:陷入爲帖子創建標籤的邏輯(如SO標籤)(PHP)
+---------------------+ +--------------------+ +---------------------+
| Tags | | Posting | | PostingTags |
+---------------------+ +--------------------+ +---------------------+
| + TagID | | + posting_id | | + posting_id |
+---------------------+ +--------------------+ +---------------------+
| + TagName | | + title | | + tagid |
+---------------------+ +--------------------+ +---------------------+
的標籤表的標籤(例如:1個PHP,MySQL的2,3 HTML)的只是名字 過賬(例如:1什麼是PHP ?,2什麼是CSS?3什麼是HTML?) poststags顯示了發佈與標籤之間的關係。
當用戶輸入發帖時,我將數據插入到「發佈」表中。它會自動插入每個帖子的posting_id(posting_id是主鍵)。
$title = mysqli_real_escape_string($dbc, trim($_POST['title']));
$query4 = "INSERT INTO posting (title) VALUES ('$title')";
mysqli_query($dbc, $query4);
然而,如何爲每個帖子插入標籤? 當用戶填寫表格時,所有可用標籤都會有一個複選框區域,並檢查他們想要的任何標籤。 (我不是在做用戶輸入他們想要的標籤的地方)
這顯示每個標籤與一個複選框。當用戶檢查每個標籤時,它將被存儲在名爲「postingtag []」的數組中。
<label class="styled">Select Tags:</label>
<?php
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query5 = "SELECT * FROM tags ORDER BY tagname";
$data5 = mysqli_query($dbc, $query5);
while ($row5 = mysqli_fetch_array($data5)) {
echo '<li><input type="checkbox" name="postingtag[]"
value="'.$row5['tagname'].'" ">'.$row5['tagname'].'</li>';
}
?>
我的問題是如何將數組中的標籤(「postingtag」)插入到我的「poststags」表中? 我應該......
$postingtag = $_POST["postingtag"];
foreach($postingtag as $value){
$query5 = "INSERT INTO postingtags (posting_id, tagID)
VALUES (____, $value)";
mysqli_query($dbc, $query5);
}
1.In此查詢,我怎麼得到這個職位的posting_id價值?
我被困在這裏的邏輯,所以如果有人能幫我解釋下一步,我將不勝感激!
是否有更簡單的方法來插入標籤?
謝謝比利。我會盡力去做你說的。我會看看是否有任何問題:) – ggfan 2010-04-07 02:41:07
我應該保留在那裏嗎?當我得到$ posting_id = $ dbc-> insert_id時,是否僅使用您爲最後一段代碼編寫的內容? – ggfan 2010-04-07 02:43:26
@ggfan:是的。對bind_param的調用會自動用正確的數據替換問號。有關示例,請參閱http://www.php.net/manual/en/mysqli.prepare.php – 2010-04-07 02:51:20