如何在mysql表中保存php数组?

时间:2017-06-03 00:21:45

标签: php mysql sql database

这是我的页面

notes.php

pageview

这是我的代码,它的作用是选择学生并打印他们的笔记。

 Select notes to add
        <select id="combito">
            <option>Notas</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
        Select the module:
        <select id="combito2">
            <option>Materia</option>
            <option value="lenguaje">History</option>
            <option value="matematicas">Math</option>
        </select>
        <div id="div_1" class="contenido">
            <table>
<thead>
<tr>
<td>RUT</td>
<td>Nombre</td>
<td>Apellido</td>
<td>Notas</td>
</tr>
</thead>
<tbody>
<?php

$connect = mysqli_connect("localhost","root", "","liceo");
if (!$connect) {
die(mysqli_error());
}
$results = mysqli_query($connect,"SELECT rut, nombre, apellido FROM alumnos");
while($row = mysqli_fetch_object($results)) {
$rut = $row->rut;
$boo = 0; /* Iniciamos la Variable Auxiliar
          que indicará cuantas notas se imprimió  por cada Alumno  */
$results2 = mysqli_query($connect,"SELECT nota FROM notas WHERE rut_alumno = '$rut' AND id_materia=1 LIMIT 1");
?>
<tr>
<td><?=$row->rut?></td>
<td><?=$row->nombre?></td>
<td><?=$row->apellido?></td>
<td>
<?php
while($nota = mysqli_fetch_object($results2)):
?>
 <input type="text" name="pin" maxlength="2" size="2" value="<?=$nota->nota?>">
<?php
    $boo +=1;/* Incrementamos después de Imprimir la nota del Alumno*/
endwhile;
/* Si la variable es menor a 2 , es decir no se imprimieron las 2 notas respectivas*/
if($boo<1){ 
    /* Imprimimos  inputs de value 0 hasta que sea < 2 , dado que si el
    el valor de $boo es 1 o 0 , primero se realizará el echo y luego el incremento
    Sí $boo es 0 -> Iteración 0 - Imprime el input - Incrementa $boo -> $boo = 1
                    Iteración 1 - Imprime el input - Incrementa $boo -> $boo = 2
                    Termina el for dado que 2 no es menor que 2
    Sí $boo es 1 -> Iteración 0 - Imprime el input - Incrementa $boo -> $boo = 2
                    Termina el For dado que 2 no es menor que 2
     */
    for (; $boo < 1; $boo++) { 
        echo '<input type="text" name="pin" maxlength="2" size="2" value="10">';
    }
}
?>
</td>
</tr>
<?php
  }
?>
</tbody>
</table>
 <input type="button" value="Save notes">
        </div>

问题是我不知道如何保存生成的所有“输入”。例如,如果我有11个名字,将生成11个输入,如果有12个学生,则将生成12个输入。然后我想知道如何在我的表格中保存这些笔记的价值。

这是我的表

notas

view table

我很感激能否指导我

2 个答案:

答案 0 :(得分:2)

您需要在输入名称中使用[]。然后PHP将创建一个包含所有输入的数组。所以它应该是:

<input type="text" name="pin[<?=$rut?>]" maxlength="2" size="2" value="<?=$nota->nota?>">

然后处理表单的脚本可以遍历$_POST['pin']中的所有值:

foreach($_POST['pin'] as $rut => $pin) {
    ...
}

答案 1 :(得分:-1)

每个输入都需要一个唯一的名称,例如pin_1pin_2等。 提交表单时,您可以单步执行每个输入并插入数据。

foreach ( $_REQUEST as $key => $value ) {

这有帮助吗?