我尝试做的是遍历文本输入,用户在其中输入博客帖子的标签。如果每个标记还不存在,我想将其添加到数据库中。
当我在数据库中测试时,下面的实际查询字符串可以正常工作。
然而,我认为我的循环语法可能不太正确,因为我没有得到任何添加到DB中的内容。
任何人能在我的循环中发现一个错误,导致我的‘添加到数据库’失败吗?
提前感谢您的帮助!
foreach ($_POST['__tags'] as $key=>$ls_value) {
$value = strtolower(mysql_real_escape_string($ls_value));
mysql_query("INSERT INTO `table` (`field`)
SELECT * FROM (SELECT '$value') as tmp
WHERE NOT EXISTS (
SELECT `field` FROM `table` WHERE `field` = '$value')
LIMIT 1") or trigger_error(mysql_error(), E_USER_ERROR);
}发布于 2013-03-19 12:41:39
尝试使用以下代码:
if(is_array($_POST['__tags']))
{
foreach ($_POST['__tags'] as $key=>$ls_value) {
$value = strtolower(mysql_real_escape_string($ls_value));
mysql_query("INSERT INTO table (field)
SELECT * FROM (SELECT '".$value."') as tmp
WHERE NOT EXISTS (SELECT field FROM table WHERE field = '".$value."') LIMIT 1") or trigger_error(mysql_error(), E_USER_ERROR);
}
}请使用正确的PDO或预准备语句,并且mysql_query已弃用,请改用mysqli函数
发布于 2013-03-19 12:49:33
只需尝试使用以下命令:
Part :
<?php
$tags = $_POST['tags'];
foreach ($tags as $tag){
$value = strtolower(mysql_real_escape_string($tag));
$sel_tag = mysql_query("select * from `table` where `field`='$value'")or die(mysql_error());
$num_rows = mysql_num_rows($sel_tag);
if($num_rows > 0){
echo "Tag Already Exists";
}
else {
$ins_tag = mysql_query("insert into `table` (`field`) values ('$value');")or die(mysql_error());
echo "Tag Successfully Inserted";
}
}
?>HTML部件:
<form action="" name="tags" method="post">
<p>Please select the tags names : </p>
<p>
<input type="checkbox" name="tags[]" value="tag1"> Tag1
<input type="checkbox" name="tags[]" value="tag2"> Tag2
<input type="checkbox" name="tags[]" value="tag3"> Tag3
</p>
<p><input type="submit" name="tag_submit" value="Submit"></p>
</form>我认为这可能会帮助你解决你的问题。
发布于 2013-03-19 13:12:18
我已经给了你提示,获取数组值和关键字表单名称应该等于数据库字段检查这一点
post.php
<?php
$keys=array();
$values=array();
foreach ($_POST as $key=>$ls_value) {
$keys[]=$key;
$values[]="'".mysql_real_escape_string($ls_value)."'";
}
echo $fileds=implode(",", $keys);
echo $values=implode(",", $values);
?>form.html
<form action="post.php" method="post">
<input type="text" value="123" name="number"/>
<input type="text" value="firstname" name="name"/>
<input type="submit" value="submit"/>
</form>https://stackoverflow.com/questions/15491529
复制相似问题