Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单个PHP保存页_Php_Variables_Save - Fatal编程技术网

单个PHP保存页

单个PHP保存页,php,variables,save,Php,Variables,Save,希望有人能提供建议 我有3.PHP页面编号 page1.php page2.php page3.php 目前,我必须硬编码三个save.PHP页面,称为: save1.php save2.php save3.php 我当前保存到MySQL数据库的代码: $q1 = $_POST["q1"]; $q2 = $_POST["q2"]; $q3 = $_POST["q3"]; $q4 = $_POST["q4"]; $q5 = $_POST["q5"]; $q6 = $_POST["q6"]; $q7

希望有人能提供建议

我有3.PHP页面编号

page1.php page2.php page3.php

目前,我必须硬编码三个save.PHP页面,称为:

save1.php save2.php save3.php

我当前保存到MySQL数据库的代码:

$q1 = $_POST["q1"];
$q2 = $_POST["q2"];
$q3 = $_POST["q3"];
$q4 = $_POST["q4"];
$q5 = $_POST["q5"];
$q6 = $_POST["q6"];
$q7 = $_POST["q7"];
$q8 = $_POST["q8"];


$proc = mysqli_prepare($link, "INSERT INTO tresults_bh_main (respondent_id, ip, browser, q1, q2, q3, q4, q5, q6, q7, q8) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
mysqli_stmt_bind_param($proc, "issiiiiiiii", $respondent_id, $ip, $browser, $q1, $q2, $q3, $q4, $q5, $q6, $q7, $q8);
我必须手动更改q1、q2、q3等,以匹配第1、2和3页上的q。我想做的是有一个可以用于我所有页面的.PHP保存页面(有意义吗?)

我无法掌握的是如何对.PHP保存页面进行编码,使其使用变量,而不是硬编码

我有一个存储以下信息的数组:$qs['questions']-存储,例如q1、q2、q3、q4等

如果有人能帮忙,我将不胜感激


荷马。

我建议你将“q”作为表单的一部分隐藏起来,这样你就可以在mysql操作页面中收集并插入它

详细答复:

使用另一个元素,如

<input type='text' name='pageNumber' value='1'>  here value will be 1/2/3 depending on your page number. then create a single save.php page and there collect the variable using 
此处的值将为1/2/3,具体取决于您的页码。然后创建一个save.php页面,然后使用

$\u POST['pageNumber']。。。希望现在天气转晴。这是根据我理解你的问题

我不确定是否理解你的问题,但为什么不从循环开始呢

function DoSomething($respondent_id, $ip, $browser, $count)
{
    settype($count, 'integer');
    if ($count < 1)
    {
        throw new Exception('The $count argument cannot be less than one.');
    }

    $queryVariables = '';
    $queryParams = array('issiiiiiiii', $respondent_id, $ip, $browser);

    $q = array();

    for ($i = 1; $i <= $count; $i++)
    {
        $q[$i] = $_POST['q' . $i];
        $queryVariables .= ', q' . $i;
        $queryParams[] = $q[$i];
    }

    $query = 'insert into tresults_bh_main (respondent_id, ip, browser' . $queryVariables . ') values (' . str_repeat('?, ', $count - 1) . '?);';

    $proc = mysqli_prepare($link, $query);
    execSQL($proc, $queryParams);
}

DoSomething($respondent_id, $ip, $browser, 8);
函数DoSomething($responder\u id、$ip、$browser、$count)
{
settype($count,'integer');
如果($count<1)
{
抛出新异常($count参数不能小于1);
}
$queryVariables='';
$queryParams=array('ISSIIIIII',$responder_id,$ip,$browser);
$q=数组();

对于($i=1;$i这不是很漂亮,但应该做你想做的事情,也许你可以从中获得想法

$list_variable = '';
$list_values = '';
$str = 'iss';
$array_data = array();

if (isset($_POST)) {
    $array_data[] = &$respondent_id;
    $array_data[] = &$ip;
    $array_data[] = &$browser;

    foreach ($_POST as $k => $v) {
        if (!preg_match('/^q\d+$/', $k))
            continue;

        $str .= 'i';
        $list_variable .= ", $k";
        $list_values .= ", ?";
        $array_data[] = &$_POST[$k];
    }

    if ($list_variable != '') {
        array_unshift($array_data, $str);

        $proc = mysqli_prepare($link, "INSERT INTO tresults_bh_main (respondent_id, ip, browser $list_variable) VALUES (?, ?, ? $list_values);");
        call_user_func_array(array($proc, 'bind_param'), $array_data);
        //$proc->execute();
    }
}

您可以使用多维数组作为POST变量,而不是拆分POST索引键

所以

是通过

$\u POST['page1']['q1']

这比试着分开钥匙要容易得多

如果您需要了解要从哪个页面中绘制,可以查看:


if(empty($\u POST['page1']){

你能解释一下你想要什么吗?这可能是你想要的吗?好的。save1.php和save2.php以及save3.php之间的区别在哪里?你有相同的变量和相同的
$\u POST[];
,同一个数据库,同一个表,同一个插入操作。每一页的q数不同,因此所有带有q数的部分都会不同,以及“?,?,”和“issiiii”部分也会不同。所有部分都会因问题的数量而不同。有意义吗?只需要更改变量名。不能使用带有ame名称三次。PHP将只保存变量的最后一个状态。只需更改变量名称,例如:第1页的变量1:
$q1\u p1=$\u POST[“q1\u p1”];
第2页的变量1:
$q1\u p2=$\u POST[“q1\u p2”];
并对表进行一次插入,或对第一页的答案进行一次插入,并对第1页和第2页的表进行两次更新。明白吗?或者您可以使用相同的变量名,但您需要为第1页添加一个隐藏字段,为第2页添加一个隐藏字段,为第3页添加一个隐藏字段。在save.php中,为隐藏文件创建if else语句。例如:
if
hidden field名称是1变量使用数据。并进行sql插入。
elseif
隐藏字段名称是2相同的
elseif
隐藏文件DN名称是3相同的
else
显示一些错误文本。如果您需要代码,请直接在此处请求。这很简单。他对您说,与我在上面的注释中对您说的相同。创建不同的变量名称.
$\u POST[q1\u p1];
此q1\u p1将是代码等的html部分中的名称。您的输入必须具有名称q1\u p1才能获得工作
$\u POST[q1\u p1];
:)而不是regexp(preg\u match),您可以拥有一个有效变量名数组并在数组中使用,非常感谢。