使用 for 循环将记录添加到数据库


Adding records to database using for loop

我有一个问题,我想在一个循环中添加一些人到数据库中,但我的问题使它补充说只有一个人(第一个)循环,即使表单引入了 4。

    $query = "INSERT INTO egzaminy (id,data_egz,kat_egz,id_osob) VALUES (' ','".$_POST['data']."','".$_POST['kategoria']."','')";
    $result = mysql_query($query) or die("Błąd dodawania egzaminu");
    $id = mysql_insert_id(); 
    if ($result == 1){
        $quer = "INSERT INTO kursanci (id,imie,nazwisko,data_ost_egz,wynik,podejscie,instruktor,pojazd,id_egz) VALUES (' ','".$_POST['imie']."','".$_POST['nazwisko']."','".$_POST['data']."','".$_POST['wynik']."','".$_POST['podejscie']."','".$_POST['instruktor']."','".$_POST['pojazd']."','".$id."')";
        $res = mysql_query($quer) or die (mysql_error());
        $id_osoby = mysql_insert_id();
        print_r($id_osoby);
    }       
for($i=1;$i<=12;$i++){
    if (isset($_POST['imie'.$i])){
        $quer = "INSERT INTO kursanci (id,imie,nazwisko,data_ost_egz,wynik,podejscie,instruktor,pojazd,id_egz) VALUES (' ','".$_POST['imie'.$i]."','".$_POST['nazwisko'.$i]."','".$_POST['data']."','".$_POST['wynik'.$i]."','".$_POST['podejscie'.$i]."','".$_POST['instruktor'.$i]."','".$_POST['pojazd'.$i]."','".$id."')";
        echo "INSERT INTO kursanci (id,imie,nazwisko,data_ost_egz,wynik,podejscie,instruktor,pojazd,id_egz) VALUES (' ','".$_POST['imie'.$i]."','".$_POST['nazwisko'.$i]."','".$_POST['data']."','".$_POST['wynik'.$i]."','".$_POST['podejscie'.$i]."','".$_POST['instruktor'.$i]."','".$_POST['pojazd'.$i]."','".$id."')";
        echo "<br>";
        print_r("I = ".$i);
        $res = mysql_query($quer) or die (mysql_error());
        $id_osoby."-".$i = mysql_insert_id();
        print_r($id_osoby."-".$i);
    }
}

我没有任何错误

不要使用 mysql_query。请阅读有关PDO http://php.net/manual/pl/book.pdo.php 并尝试一下。

还要尽量不要在表中写入 id,或者检查表中的 ID 是否为自动增量字段(ID int NOT NULL AUTO_INCREMENT,)

Ist 请使用mysqli_*PDO扩展,因为mysql_*已被弃用,在 PHP 7 中不可用。

现在,根据您的评论:

@AnkiiG,是的... – 库博尔

ID 列是PRIMARY KEY NOT NULL AUTO_INCREMENT所以不能插入空字符串。

从问题:

它补充说,只有一个人(第一个)循环,即使 表格介绍 4.

如果表单为您提供四条记录,则for()循环将在第 5 次迭代中失败。它会给你未定义的索引通知,因为你正在使用$i<=12.