使用Foreach插入

时间:2013-07-09 14:34:54

标签: php mysql

我对数组并不熟悉。

我尝试将我的数据保存到数据库,但它似乎没有工作,只有它保存 请检查我的样本图片。

Fields

它只保存的数据库是

DB

并且循环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';
}

我的代码有什么问题吗?

3 个答案:

答案 0 :(得分: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_*函数已弃用,将在futere中删除。

答案 1 :(得分: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>

之后你需要迭代帖子参数:

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';
}

答案 2 :(得分:1)

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