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