我已经染上了简单的标签系统,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