【问题标题】:php mysql save input arrayphp mysql 保存输入数组
【发布时间】:2014-03-17 00:21:52
【问题描述】:

我遇到了这个 php mysql 问题。我有 5 个同名的输入字段,输入的每个输入字段都是要保存在数据库中的。但目前,如果我输入 2 个字段,则插入它们加上 3 个空白字段。我如何插入不为空的那些

这里是html

<input type="text" name="tags[]" placeholder="Add Tags" />
<input type="text" name="tags[]" placeholder="Add Tags" />
<input type="text" name="tags[]" placeholder="Add Tags" />
<input type="text" name="tags[]" placeholder="Add Tags" />
<input type="text" name="tags[]" placeholder="Add Tags" />

这里是php

 $tags = $_POST['tags'];

    for($i = 0; $i < count($tags); $i++){
                 $tag = $_POST['tags'][$i];

                 $addtags = $gifs->addtags($tag, $id);
              }

【问题讨论】:

标签: php mysql for-loop


【解决方案1】:

嗯,第一件事是清理你的输入,第二件事是修剪每个值并添加:

$tag = trim($tag);
if(!empty($tag)){
 ...code

【讨论】:

  • 你认为 trim() 会做什么?我完全理解并同意 !empty 但 OP 并没有说它不应该允许带有空格的条目
  • 它将修剪变量,删除空格和其他不可见的字符,以免创建空/重复的标签。由垂直标签组成的标签有什么用?
  • 如果用户提交这个标签怎么办:\t\n\n\t,OP想要这个标签吗?
  • 这是 OP 的一个问题,我想说的是,我们对现实世界的使用了解不足,无法对输入中的有效字符做出任何假设。用户提到的唯一情况是空值
  • 是的,我理解你的意思,但只是阅读代码很明显他不想要隐形字符。至少,我希望如此
【解决方案2】:

试试这个

    $tags = $_POST['tags'];

for($i = 0; $i < count($tags); $i++){
             $tag = trim($_POST['tags'][$i]);
    if (!empty($tag))
             $addtags = $gifs->addtags($tag, $id);
          }

【讨论】:

    【解决方案3】:

    array_filter()去掉空格:

    $tags = array_filter($_POST['tags']);
    
    foreach($tags as $tag) {
        $addtags = $gifs->addtags($tag, $id);
    }
    

    【讨论】:

    • 好主意,但同样,这不会阻止发布不可见的字符。
    【解决方案4】:

    试试这个,你可以使用foreach

    $tags = $_POST['tags'];
    foreach($tags as $tag) {
      $tag = trim($tag);
      if (! empty($tag)) {
        $addtags = $gifs->addtags($tag, $id);
      }
    }
    

    【讨论】:

    • 这不会满足 OP 的要求,如果 tag[4] 为空,它将被发送到 addtags
    • @sathia,请检查 OP 要求,他想避免空插入 table,这解决了他的问题!
    • a) 没有对输入进行清理,b) 如果标签只是一个空格,它将被发送到 addtags c) 如果标签为空,它将被发送到 addtags,你的 foreach 正在做和 OP 的一样
    猜你喜欢
    • 1970-01-01
    • 2015-04-25
    • 2010-12-31
    • 2013-07-01
    • 1970-01-01
    • 2013-08-29
    • 2018-03-31
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多