PHP将未知数组长度存储到数据库中

时间:2016-03-29 18:45:51

标签: php html arrays database mysqli

所以我有一个表单,可以让人们添加成绩列表,使用jQuery,他们可以添加多达9个额外的字段。 (意思是他们可以提交1到10年级的任何数字)。我想知道的是我如何将其存储在我的数据库中,因为我不想将它们全部转换为一个字符串。我担心的是因为我不知道用户要输入多少等级,我无法设置一个确定的数组来存储(或者我可以吗?)

很抱歉,如果解释得不是很好,我对PHP和SQL仍然相对较新!

1 个答案:

答案 0 :(得分:1)

如果我没有弄错的话,快速假设是:为多个科目保存一个具有多个成绩的用户可以像这样实现。

首先,我们从表单中获取一个用户ID并将其放在PHP中:

$id = isset($_POST['id'])? $_POST['id']:'';

然后获得以逗号分隔值发送的多个成绩和科目:

//$id= explode(',',$_POST['id']);// For multiple users
$grade= explode(',',$_POST['grade']);
$subj= explode(',',$_POST['subject']);
$entry= explode(',',$_POST['entry']);

现在计算成绩数:$count= count($grade);

使用for loop中的计数进行循环插入:

for ($i = 0; $i < $count; $i++) {
   try {
        $dbh->beginTransaction();   //$dbh is your PDO connection               
            $insertQ = "INSERT INTO `grades` (id, grade, subject, entry) 
                        VALUES('$id', '$grade[$i]', '$subj[$i]','$entry[$i])";             
            $dbh->query($insertQ);              
            $dbh->commit();
            } catch (Exception $e) {
                $error = $e->getMessage();

            }
}

希望这可能会有所帮助。