Kinnor Majumder Ответов: 0

Как вставить несколько строк данных из таблицы 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-инъекция - руководство пользователя[^]

0 Ответов