为什么我的数组只返回循环中的最后一个值?

时间:2011-10-25 17:04:18

标签: php mysql arrays implode

我有以下代码,用于循环显示在表单上提交的名称:

$row_count = count($_POST['name']);
if ($row_count > 0) {

  mysql_select_db($database, $connection);
  $name = array();
  $workshop = array();

  for($i = 0; $i < $row_count; $i++) {
    // variable sanitation...
    $name[i] = mysql_real_escape_string(ucwords($_POST['name'][$i]));
    $workshop[i] = mysql_real_escape_string($_POST['workshop'][$i]);
    }
  $names = "('".implode("','",$name)."')";
.....etc

由于某种原因,$names仅返回表单上提交的姓氏,而不是所有姓名。有人可以帮助我正常工作吗?

谢谢,

尼克

1 个答案:

答案 0 :(得分:6)

问题在这里

$name[i] = 
$workshop[i] = 

溶液:

$name[$i] = 
$workshop[$i] = 

现在你的代码正在以这种方式工作:

$name["i"] = 
$workshop["i"] = 

所以在$name$workshop数组中只有一个元素。 (最后来自循环)