数组在每个字段PHP中存储一个字符

时间:2014-04-15 14:22:58

标签: php html mysql

我有一张表格

<form action="inserir.php" method="POST">
<tr>
<td><INPUT type='checkbox' name='chk'/></td>
<td><input type='text' name='ppdata[$x]'/></td>
<td><input type='text' size='40' name='ppempresa[$x]'></td>
<td><input type='text' name='ppfuncao[$x]' size='40'></td>
</tr>`
</form>`

在我的代码中,用户可以向表中插入更多行,插入数据并将其发送到新文件(insert.php)

foreach ($_POST["ppdata"] as $dat){
echo $dat. ' ';
}

foreach ($_POST["ppempresa"] as $empresa){
echo $empresa. ' ';
}

foreach ($_POST["ppfuncao"] as $funcao){
echo $funcao. ' ';
}



$data = count($dat);
$emp = count($empresa);
$func = count($funcao);


if($data == $emp){
  for($x = 0; $x < $emp; $x++){
    $str[] = "('{$dat[$x]}','{$empresa[$x]}','{$funcao[$x]}','{$id}')";
  }
  $s = implode(',',$str);
   $sql = mysql_query("INSERT INTO pp (data,empresa,descricao,id_user) VALUES $s;");
}

我只能为每个字段保存一个字符。 如果我这样做:

echo '$dat';

它将回显整个阵列。

如果我这样做:

echo '$dat[0]';

它只会显示字符串的第一个字母。如果我在输入上写'Hello',它只会显示'H'。

编辑:我需要在数据库中插入数据,具体取决于用户添加的行数。但是现在,数组只插入每个字段的最后一个字母的最后一个字母。

1 个答案:

答案 0 :(得分:4)

让我们来看看写“Hello”时会发生什么。

发送以下POST数组:

$_POST = array(
    "ppdata" => array(
        "Hello"
    )
);

现在,你运行它:

foreach ($_POST["ppdata"] as $dat){
echo $dat. ' ';
}

此时,$dat等于"Hello"

值得注意的是,$dat字符串。这意味着$dat[0]是字符串的第一个字符,即"H"。这就是如何以字符数组的形式访问字符串。

您可能打算在$_POST['ppdata']处使用$dat(在count中,在循环等中),因为这是您的数组。