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