如何为php中的学生一次输入多个数据

时间:2016-07-29 15:03:16

标签: php mysql

它显示了数据库和文本框中的所有学生。但是当我输入每个学生的标记时,它只选择第一个记录而只保存标记。

我想:

  1. 学生的所有姓名都应打印在带有文本框的页面上,我将在其中输入每个学生的标记。
  2. 我想保存每个学生的记录。
  3. -

    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    if(! $conn ) {
        die('Could not connect: ' . mysql_error());
    }
    $sql = "SELECT * FROM stunr WHERE stucou = '".$_POST["cls"]."'";
    
    mysql_select_db('college-db');
    $retval = mysql_query( $sql, $conn );
    if($retval === FALSE) { 
       die(mysql_error());
    }
    
    $row = mysql_fetch_array($retval);
    echo "<div style='margin-top:120px; margin-left:180px;'>";
    $cla=$row['stucou'];
    echo "<h3>Class"."<b>&nbsp;&nbsp;$cla</b>"."</h3>";
    echo"</div>";
    
    echo "<div style='margin-top:50px; margin-left:180px;'>";
    while($row = mysql_fetch_array($retval)) {
        echo"<form method='post' action='mst-marks-insert.php'>";
        $clsnm  = $row['stufname'];
        echo"$clsnm";
        echo "<br>";
        echo"<input type='text' name='mas' class='textbox' placeholder='Enter Marks'/><br><br>";
    }
    echo "<input type='text' name='tot' />";
    echo"<input type='submit' />";
    echo"</form>";
    echo"</div>";
    

2 个答案:

答案 0 :(得分:0)

我首先要在while循环之前移动开始表单标记。

echo"<form method='post' action='mst-marks-insert.php'>";
 while($row = mysql_fetch_array($retval))
    {

答案 1 :(得分:0)

做这样的事情:

  1. 在循环播放
  2. 之前移出开始表单
  3. 制作字段&#34; mas&#34;数组
  4. 这可能看起来像这样

    <?php
    
    mysql_select_db('college-db');
    $retval = mysql_query($sql, $conn);
    if ($retval === FALSE) {
        die(mysql_error());
    }
    
    
    $row = mysql_fetch_array($retval);
    echo "<div style='margin-top:120px; margin-left:180px;'>";
    $cla = $row['stucou'];
    echo "<h3>Class" . "<b>&nbsp;&nbsp;$cla</b>" . "</h3>";
    echo"</div>";
    
    echo "<div style='margin-top:50px; margin-left:180px;'>";
    echo "<form method='post' action='mst-marks-insert.php'>";
    while ($row = mysql_fetch_array($retval)) {
        $clsnm = $row['stufname'];
        echo "$clsnm";
        echo "<br>";
        echo "<input type='text' name='mas[$clsnm]' class='textbox' placeholder='Enter Marks'/><br><br>";
    }
    echo "<input type='text' name='tot' />";
    echo "<input type='submit' />";
    echo "</form>";
    echo "</div>";
    
    ?>
    

    在你的&#34; mst-marks-insert.php&#34;然后$_POST var看起来像这样:

    <?php
    var_dump($_POST['mas']);
    array (
      'clsnm1' => 'test',
      'clsnm2' => 'test2',
    )
    ?>
    

    所以你可以做这样的事情(它只是一个可能的例子,因为我不知道你的SQL表是怎样的):

    <?php
    foreach ($_POST['mas'] as $clsnm => $mas) {
        mysql_query("INSERT INTO `mastable` (`clsnm`, `mas`) VALUES ('".mysql_real_escape_string($clsnm)."', '".mysql_real_escape_string($mas)."')");
    }
    ?>