Php 如何在for each循环中获取并存储多个$\u POST变量?

Php 如何在for each循环中获取并存储多个$\u POST变量?,php,mysql,post,for-loop,survey,Php,Mysql,Post,For Loop,Survey,因此,目前我正在使用第三方软件应用程序从各种调查中获得结果。此应用程序通过$\u POST变量将结果发送到页面 比如说 $demoEMP = $_POST['demoEMP']; 这只是将特定问题的答案存储到变量中 我想做的是将问题1-20存储在POST变量中,并将它们插入数据库。。 我不想做的是写20多个Insert命令或20+$var=$\u POST['var'] 所以我想一个for循环就可以了。。。这就是我目前所拥有的。。。基于查看各种方法和教程=/ for ($i = 0; $i &

因此,目前我正在使用第三方软件应用程序从各种调查中获得结果。此应用程序通过$\u POST变量将结果发送到页面

比如说

$demoEMP = $_POST['demoEMP'];
这只是将特定问题的答案存储到变量中

我想做的是将问题1-20存储在POST变量中,并将它们插入数据库。。 我不想做的是写20多个Insert命令或20+$var=$\u POST['var']

所以我想一个for循环就可以了。。。这就是我目前所拥有的。。。基于查看各种方法和教程=/

for ($i = 0; $i < 55; $i++) {
$answer = "Q{$i}";
echo $_POST[$answer];
}
} }

然而,我现在正试图找到一种方法,将ID添加到问题中,并使该ID自动递增。。。在每个插页上。我想我可以做一些类似$SGQID++的事情,但这似乎不起作用。。有人有什么想法吗

再次感谢

好的,经过进一步的修补,看起来++的位置被关闭了,需要在查询之后。。。正确的代码如下所示

$SGQID= 1;

foreach ($_POST as $i => $v)
{

if (preg_match("/^Q\d+$/",$i)) {

// Here we insert value $v to database
$query_2 = mysql_query("INSERT INTO SGresult VALUES ('', '', '$pID', '$SGQID','$v')") or die('Error: '.mysql_error ());
$SGQID++; //added value to increment Question ID in DB

}
}

您可以在$\u POST数组本身上循环:

foreach ($_POST as $key => $value) {
    // Filter on value of $key
    // In this case only keep variables that start with a Q
    if (! substr($key, 0, 1) == 'Q') {
        continue;
    }

    // Do something with value
    echo $_POST[$key];     
}
如果要将值分配给与$\u POST数组的键同名的PHP变量,可以使用:


$\u POST['demoEMP']的值随后将分配给$demoEMP。

您可以在$\u POST数组本身上循环:

foreach ($_POST as $key => $value) {
    // Filter on value of $key
    // In this case only keep variables that start with a Q
    if (! substr($key, 0, 1) == 'Q') {
        continue;
    }

    // Do something with value
    echo $_POST[$key];     
}
如果要将值分配给与$\u POST数组的键同名的PHP变量,可以使用:


$u POST['demoEMP']的值将被分配给$demoEMP。

是的,您几乎走上了正确的轨道。您可以使用count($\u POST)而不是55。foreach还可以与$counter变量一起使用。在$\u POST数组上使用foreach()并对键名进行过滤是一个更好的解决方案,因为使用带有count($\u POST)的for循环假定您连续对$\u POST变量进行编号,并且没有其他变量传递给脚本。是的,您几乎走上了正确的轨道。您可以使用count($\u POST)而不是55。foreach还可以与$counter变量一起使用。在$\u POST数组上使用foreach()并对键名进行筛选是一个更好的解决方案,因为使用带有count($\u POST)的for循环假定您连续对$\u POST变量进行编号,并且不会将其他变量传递给脚本。感谢Jan,我会尝试一下,然后让你知道。=)谢谢你,简,我会试试看,然后告诉你。=)目前给这一个镜头卡斯,我从来没有使用过preg_比赛之前。谢谢你,我会随时通知你的!嘿,简,这真是太棒了!但是,我想基于我所做的每一次插入抛出一个自动增量值,从1开始。请参阅上面编辑的问题。至少在使用sql时,数据库会设置自动增量值:创建表问题(
id
INT NOT NULL自动增量主键,
text
text NOT NULL)引擎=MYISAM;-对于这个表,insert看起来像“insert into questions(
text
)values('lalala')”,然后通过mysql\u insert\u id()或“select LAST\u insert\u id from questions”获取自动增量索引。目前,我从未使用过preg\u match。谢谢你,我会随时通知你的!嘿,简,这真是太棒了!但是,我想基于我所做的每一次插入抛出一个自动增量值,从1开始。请参阅上面编辑的问题。至少在使用sql时,数据库会设置自动增量值:创建表问题(
id
INT NOT NULL自动增量主键,
text
text NOT NULL)引擎=MYISAM;-对于这个表,insert看起来像是“插入到问题(
text
)值('lalala')”,然后通过mysql\u insert\u id()或“从问题中选择最后一个\u insert\u id”获取自动增量索引
foreach ($_POST as $key => $value) {
    // Filter on value of $key
    // In this case only keep variables that start with a Q
    if (! substr($key, 0, 1) == 'Q') {
        continue;
    }

    // Do something with value
    echo $_POST[$key];     
}
$$key = $value