0

我对数组不是很熟悉。

我尝试将我的数据保存到数据库,但它似乎无法正常工作,唯一保存的是请检查我的示例图像。

字段

它只保存的数据库是

D B

它循环了4次

我的代码如下

<form method="post">
<table>
    <tr>
        <td>F Name</td>
        <td>M Name</td>
        <td>L Name</td>
    </tr>
    <tr>
        <td><input type="text" name="fname" value="" /></td>
        <td><input type="text" name="mname" value="" /></td>
        <td><input type="text" name="lname" value="" /></td>
    </tr>
    <tr>
        <td><input type="text" name="fname" value="" /></td>
        <td><input type="text" name="mname" value="" /></td>
        <td><input type="text" name="lname" value="" /></td>
    </tr>
</table>
<br />
<input type="submit" name="SubmitText" value="Save" />
</form>

if ( isset( $_POST['SubmitText'] ) ) {
    $fn = $_POST['fname'];
    $mn = $_POST['mname'];
    $ln = $_POST['lname'];
    $value = array();

    foreach( $_POST as $keys => $value)
    $db = mysql_query( "INSERT INTO jon_test VALUE( '', '".$value['fn']."', '".$value['mn']."', '".$value['ln']."' )" );

    echo $value['fn'] . '<br />';
    echo $db == true ? 'Yes' : 'No';
}

我的代码有什么问题吗?

4

3 回答 3

2

将您的 PHP 代码包装在<?php ?>这样的标签中:

<?php
if ( isset( $_POST['SubmitText'] ) ) {
    $fn = $_POST['fname'];
    $mn = $_POST['mname'];
    $ln = $_POST['lname'];
    $value = array();

    foreach( $_POST as $keys => $value)
    $db = mysql_query( "INSERT INTO jon_test VALUE( '', '".$value['fn']."', '".$value['mn']."', '".$value['ln']."' )" );

    echo $value['fn'] . '<br />';
    echo $db == true ? 'Yes' : 'No';
}
?>

另外,我建议您使用mysqli_*函数而不是mysql_*函数,因为mysql_*函数已被弃用,并将在未来被删除。

于 2013-07-09T14:36:58.607 回答
2
<form method="post">
<table>
    <tr>
        <td>F Name</td>
        <td>M Name</td>
        <td>L Name</td>
    </tr>
    <tr>
        <td><input type="text" name="input[0][fname]" value="" /></td>
        <td><input type="text" name="input[0][mname]" value="" /></td>
        <td><input type="text" name="input[0][lname]" value="" /></td>
    </tr>
    <tr>
         <td><input type="text" name="input[1][fname]" value="" /></td>
        <td><input type="text" name="input[1][mname]" value="" /></td>
        <td><input type="text" name="input[1][lname]" value="" /></td>
    </tr>
</table>
<br />
<input type="submit" name="SubmitText" value="Save" />
</form>

之后,您将需要迭代 post 参数:

foreach($_POST['input'] as $input) {
    $db = mysql_query( "INSERT INTO jon_test VALUE( '', '".$input['fname']."', '".$input['mname']."', '".$input['lname']."' )" );

   echo $input['fname'] . '<br />';
   echo $db == true ? 'Yes' : 'No';
}
于 2013-07-09T14:43:17.713 回答
1

输入名称相同,因此您仅获得最后一个结果使用 [] 创建值数组

于 2013-07-09T14:38:18.940 回答