我已經染上了簡單的標籤系統,foreach循環用2個MySQL查詢
我的PHP頁面得到的標記的字符串, 首先,它「exlpode」他們,然後我使用foreach循環來查找標籤ID在id-tagname表中, 一旦找到標籤ID,我將它放在另一個名爲articledtaged的表中,其中有兩個值,文章ID和標籤ID。
這是代碼:
if (isset($_POST['tag'])&&!empty($_POST['tag'])){
$tag = $_POST['tag'];
$tagsarr = explode(",", $tag);
print_r ($tagsarr);
foreach($tagsarr as $key=>$row){
echo $row ;
$tagidquery = "SELECT id FROM tags WHERE tagname = '$row'";
$results = mysql_query($tagidquery);
$tagidarr = mysql_fetch_assoc($results);
$tagid = $tagidarr['id'];
echo $tagid;
$taginsertquery = "INSERT INTO tagedarticle (articleid,tagid) VALUES('$yourarticleid','$tagid')";
mysql_query($taginsertquery);
}
但第二部分只能使用一次,
舉例來說,如果我有3個標籤, 「酷」, 「精彩」, 「跛腳」,每用它自己的id(比如說4-6例子)。 結果將是
tagname tagid
cool 4
wonderful (empty)
lame (empty)
但是爲什麼?!
請指教。
是結果在tagedarticle表(順便說一句標記爲與2克的),如果是的話,這些回聲的輸出是什麼? $ yourarticleid從哪裏來?注意:使用mysqli和準備好的語句,而不是mysql函數。 –
這是迴應的結果,帶有文章ID和標籤ID的表格填充了3行,每個標籤一行,第一行獲取適當的標籤ID值,另外兩行是空的。因爲它確實回顯了標記名($ row),我知道它確實到達了下一個標記,並且它試圖將該標記號插入到表中。但循環在第一次之後不會獲得正確的標籤id值 – shultz
您確定表標籤確實包含所有標籤嗎?此外,請確保您啓用所有警告並查看是否有幫助(我想它會)。 – Gutza