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

时间:2016-02-10 10:41:37

标签: php mysql forms

我有一个问题,我想在循环中将一些人添加到数据库中,但我的问题是它添加了只有一个人(第一个)循环,即使表单引入了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);
    }
}

我没有任何错误

2 个答案:

答案 0 :(得分:0)

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

也可以尝试不在表中写入id,或者检查表ID中是否为AUTO INCREMENT字段 (ID int NOT NULL AUTO_INCREMENT,)

答案 1 :(得分:0)

我最好请使用mysqli_*PDO扩展名,因为mysql_*已被弃用且在PHP 7中不可用。

现在,根据您的意见:

  

@AnkiiG,是的...... - Kubol

id列为PRIMARY KEY NOT NULL AUTO_INCREMENT,因此无法插入空字符串。

来自问题:

  

它添加了只有一个人(第一个)循环,即使   表格介绍4。

如果表单提供了四个记录,那么for()循环将在第五次迭代中失败。 并且它会为您提供未定义的索引通知,因为您使用的是$i<=12