Как вставить несколько строк данных из таблицы HTML в базу данных ?
Я хочу создать форму посещаемости со всеми именами сотрудников в HTML-таблице из базы данных. Затем пользователь должен ввести определенные значения относительно каждого сотрудника, а затем сохранить данные всех сотрудников в базе данных. Вот этот стол :
<table style="width:100%"> <tr> <th>E_Code</th> <th>KjCode</th> <th>SecID</th> <th>Mkgs</th> <th>Akgs</th> <th>Ekgs</th> <th>Tkgs</th> <th width="100%">Name</th> </tr> <?php for($i=1;$i<=mysqli_num_rows($sql1);$i++){ $row = mysqli_fetch_array($sql1); ?> <tr> <td><input type="disabled" name="ecode<?php echo $i; ?>" class="input2" value="<?php $ecode = $row['ECode']; echo $ecode;?>" readonly></td> <td> <?='<select class="input" name="kjcode<?php echo $i; ?>" required>'.$dropOptions.'</select>' ?> </td> <td> <?='<select class="input" name="secid<?php echo $i; ?>" required>'.$dropOptions1.'</select>' ?> </td> <td><input class="input" type="number" name="mkgs<?php echo $i; ?>" placeholder="Mkgs"></td> <td><input class="input" type="number" name="akgs<?php echo $i; ?>" placeholder="Akgs" readonly></td> <td><input class="input" type="number" name="ekgs<?php echo $i; ?>" placeholder="Ekgs" readonly></td> <td><input class="input" type="number" name="tkgs<?php echo $i; ?>" placeholder="Tkgs"></td> <td width="100%"><input type="disabled" class="input2" value="<?=$row['EmpName'];?>" readonly></td> </tr> <?php }}?> </table>
Однако код не работает, ничего не вставляется в базу данных. Я пробовал использовать разные методы, но вставляется только последняя строка таблицы. Я знаю, что код уязвим для различных атак, но он будет работать на автономном сервере, так что это не имеет большого значения. Если кто-нибудь сможет починить его, это будет здорово. Пожалуйста, помогите мне. Заранее спасибо.
Что я уже пробовал:
Я пытаюсь вставить данные в базу данных с помощью этого кода :
if(isset($_POST['save'])){ $size=sizeof($_POST); $number=$size/7; //here 3 is number of column in the HTML table for($i=1;$i<=$number;$i++) { $index1="ecode".$i; $first[$i]=$_POST[$index1]; $index2="kjcode".$i; $second[$i]=$_POST[$index2]; $index3="secid".$i; $third[$i]=$_POST[$index3]; /*$index4="mkgs".$i; $fourth[$i]=$_POST[$index4]; $index5="akgs".$i; $fifth[$i]=$_POST[$index5]; $index6="ekgs".$i; $sixth[$i]=$_POST[$index6]; $index7="tkgs".$i; $seventh[$i]=$_POST[$index7];*/ /* $save_query = mysqli_query($db, "insert into attendance(E_Code, KjCode, SecID, MKgs, AKgs, EKgs, TKgs, MuhuriID) values('$first[$i]', '$second[$i]', '$third[$i]', '$fourth[$i]', '$fifth[$i]', '$sixth[$i]', '$seventh[$i]', '$muhuri')");*/ $save_query = mysqli_query($db, "insert into attendance(E_Code, KjCode, SecID, MuhuriID) values('$first[$i]', '$second[$i]', '$third[$i]', '$muhuri')"); } }
Richard MacCutchan
Вы открыли соединение с БД? Вы уверены, что вам нужно разделить число $на 7?
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]