我遇到了當前代碼的問題,實際上我不確定是否要以正確的方式進行。檢索一個ID數組?
我目前的腳本(總數)上傳照片並從MySQL數據庫返回id。當照片被選中時,它也被賦予標籤。爲了關聯這些標籤,我選擇了一個表格'tagrefs',它簡單地將tag_id和photo_id結合起來供以後查詢。表'標籤'由tag_id和tag_name組成。表'照片'有很多字段,唯一相關的是photo_id。
目前,我通過POST傳遞標籤。
$tags = trim($_POST['tags']);
$tags = preg_replace('/\s+/', '', $tags);
$tags = htmlspecialchars($tags);
$tags = mysql_real_escape_string($tags);
$tags = strip_tags($tags);
$tags = explode(",", $tags);
$insert = $dbh->prepare('INSERT INTO tags (tag_name) VALUES (:tag)');
$insert->bindParam(':tag', $tag, PDO::PARAM_STR);
foreach ($tags as $tag) $insert->execute();
$select = $dbh->prepare('SELECT tag_id FROM tags WHERE tag_name = (:tag)');
$select->execute();
$result = $select->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
直到$選擇它完美的作品。標籤被插入,照片上傳。桃色的。現在我需要寫一些能夠給我添加tag_name的tag_id的東西,然後我需要將它與photo_id結合並將其插入到'tagrefs'中。底部$ select是我未能嘗試通過將它們與用戶POSTs字符串進行比較來檢索我剛纔創建的tag_id。我想到的方式是檢索它們,然後用photo_id和tag_id創建一個新數組,然後將值插入'tagrefs'中。
這一切聽起來過於複雜,可能有一個更好/更安全的方式來做到這一點,但一小時的谷歌搜索沒有幫助。
如果您的標籤是唯一的,爲什麼給它們一個標籤ID呢?爲什麼不直接使用標籤本身,並在'tagrefs'表中的兩列上創建多列索引,以確保同一標籤不能多次與同一張照片關聯?那麼你永遠不必查找這些ID,你可以參考標籤。 – glomad
@ithcy主要是爲了節省空間並保存標記關聯(如果它們已更正)(拼寫錯誤都會記住)。如果我將標籤名稱保存在參考列中並編輯原始標籤,則這些更改將不會反映在參考中。 –