保留从php中的数组中的表单发送的多个值

时间:2015-07-29 09:06:25

标签: php mysql arrays forms

   <html>
            <body>
    <form method="post" action="#">
        <h1> AB_NO</h1>
        <input type=text name="excel"> //input values that need to be checked for presence in database.

        <input type=submit name="submit">

        </form>
            <?php
    session_start();
    if(isset($_POST['submit']))
        {
    $host="localhost";
    $user="root";
    $password="";
    $db="green";
    $table="manitable";

    mysql_connect("$host","$user","$password") or die("Cannot Connect");
    mysql_select_db("$db") or die("Cannot select DB!");

    $var=$_POST['excel'];

    $sql="SELECT * FROM manitable WHERE (ab_no = '$var')";

    $result=mysql_query($sql);
    $data_item=array();
    $items=array();

    if (mysql_num_rows($result) == 1) {
    print 'Product Exists' ;

        while ($row = mysql_fetch_array($result)) {

        $data_item['doc_no'] = $row['doc_no'];
        $data_item['ab_no'] = $row['ab_no'];
        $data_item['od_id'] = $row['od_id'];


        $items[] = $data_item;

    }
        print_r($items);

    }
    else {
    print 'Sorry, this Product is not present' ;
    }
    }

    ?>
    </body>
        </html>  

上面的代码是我正在使用的代码。

name=excel的表单字段一次包含不同的字符串。在输入的每个值上,我希望它存储在$items数组中。如果在数据库中存在,则检查在表单字段中输入的值。如果存在,则必须将其与其他列值一起存储在$items数组中。最初在字段中输入值,该值以及相应的列条目存储在items数组中。

索引值为0的items数组将保存发送的表单值中的相应值。现在,当第二个值再次通过表单时,我希望它作为items数组中的第二个条目存储在数组中。

数据库中的manitable表包含以下列:

  • doc_no
  • ab_no
  • od_id

输出结果为:

 Product ExistsArray ( [0] => Array ( [doc_no] => 202344223341312 [ab_no] => SMLP3105153342 [od_id] => ODRD3028479929633865301 ) )

我希望将与db值比较匹配的新ab_no条目添加到items数组的[1],[2]等索引中。

提前致谢。

2 个答案:

答案 0 :(得分:2)

不会提交包含action="#"的表单。 URL中的#称为片段,并且(除其他外)用于引用文档中具有id属性的元素。

由于您在同一个文件中处理表单,因此您应该省略action属性:

<form method="post"></form>

答案 1 :(得分:0)

如果您想在提交后存储值,则需要使用会话。

首先开始一个会话,如果没有,或者就像你现在已经拥有它一样。

推荐的PHP版本&gt; = 5.4.0

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

来源:http://www.php.net/manual/en/function.session-status.php

对于PHP的版本&lt; 5.4.0

if(session_id() == '') {
    session_start();
}

然后将$data_item存储在会话中,而不是$items数组。

$_SESSION['items'][] = $data_item;
$items = $_SESSION['items'];

然后你可以print_r()你的$ items。

并且不要忘记将您的行动排除在Sverri所说的表格之外。