несколько значений не сохраняются в массиве в php, помогите мне с приведенным ниже кодом

#php #html

#php #HTML

Вопрос:

Мой PHP-код:

 <?php
include 'function.php';
$db = mysqli_connect("localhost","root","","messmanagementsys");
session_start();
if(mysqli_connect_error())
{
    echo "ERROR CONNECTING TO THE DATABASE";
}
else{
    $vali=$_POST['noie'];
    echo $vali;
    for($i=1;$i<=$vali;$i  )
    {

    $iname=$_POST['ingname'.$i];
    $icode=$_POST['ingcode'.$i];
    $icur=$_POST['ingcur'.$i];
    $ireq=$_POST['ingreq'.$i];
    $icost=$_POST['ingcost'.$i];
    $idate=$_POST['ingdate'.$i];
    $check="SELECT `ingcode` FROM `ing` WHERE ingcode='$icode'";
    $s=mysqli_query($db,$check);
    $coderepeat=mysqli_fetch_array($s);
    $e=mysqli_num_rows($s);
    echo $e;
    if($e>0)
    {
        echo "<script>$(function(){
            $('#my-dialog-id').dialog();
        });
        </script>";
        if(isset($_POST['ingyes']))
        {
            $update="UPDATE `ing` SET `ingname`='$iname',`ingcode`='$icode',`current`='$icur',`required`='$ireq',`ingcost`='$icost',`date`='$idate' WHERE 1";    
        }
        if(isset($_POST['ingno'])){
            header("Refresh:0:url=ingredient.php");
        }
    }
    else{
    $query="INSERT INTO `ing`(`ingname`, `ingcode`, `current`, `required`, `ingcost`, `date`) VALUES   ('$iname','$icode','$icur','$ireq','$icost','$idate')";
    $res=mysqli_query($db,$query);


    if($res)
    header("Refresh:0;url=ingredient.php");
   else
   echo "SOMETHING WENT WRONG";

    }
}
}


?>
<!DOCTYPE html>
<head></head>
<body>
    <form action="ingupdate.php" method="POST">
<div id='my-dialog-id' title='my dialog title'>
    <p>The item <?php $string=implode(",",$coderepeat);echo $string;?> already exists do u wish to update??</p>
  <button name="ingyes" >YES</button>
  <button name="ingno">NO</button>
</div>
</form>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</body>
  

Мне нужно напечатать код, который повторяется.
Я поместил записи в массив в php, но если у меня есть 2 повторяющихся кода, то в массиве одно и то же значение сохраняется дважды.
Я получаю значения переменной со страницы html, и пользователь выбирает количество записей, которые он хочет внести.
Я создаю поле ввода динамически и задаю имена динамически, поэтому я извлекаю их в PHP путем конкатенации ingname с $i , которая является переменной, для которой задано количество полей ввода, запрошенных пользователем.
Я использую циклы и извлекаю значения этих полей ввода.
Что я могу сделать, чтобы ввести в массив 2 значения?
Вот мой HTML-код:

         <!DOCTYPE html>
    `<html>
    <head>
        <link rel="stylesheet" href="main.css">
        <link href='https://fonts.googleapis.com/css?family=Bungee Shade' rel='stylesheet'>
        <link href='https://fonts.googleapis.com/css?family=Eater' rel='stylesheet'>
        <title>Ingredients Details</title>
    <style>

    table {
      font-family: arial, sans-serif;
      border-collapse: collapse;
      width: 100%;
    }

    td, th {
      border: 1px solid #dddddd;
      text-align: left;
      padding: 8px;
    }

    tr:nth-child(even) {
      background-color: #dddddd;
    }

    </style>
    </head>
    <body>
          <center> <h1 id="labelb">Ingredients Details</h1></center> 




    <form action="ingupdate.php" method="POST" >
    <input type="text" name="noie" placeholder="Enter the no of ingredients to add" style="width:200px;" id="noie"> 
          <button id="noieb">Enter</button>
    <table id="ingredients">
      <thead><tr>
        <th>Ingredient name:</th>
        <th>Ingredient code:</th>
        <th>Current<sub>(in stock in kgs)</sub></th>
        <th>Required<sub>(excluding stocks in kgs)</sub></th>
        <th>Cost<sub>(in Rupees including transportation)</sub></th>
        <th>Date:</th>

      </tr>
    </thead>
    <tbody id="ing">
    <?php
    $db = mysqli_connect("localhost","root","","messmanagementsys");
    session_start();
    if(mysqli_connect_error())
    {
        echo "ERROR CONNECTING TO THE DATABASE";
    }
    else{
    //$query1="SELECT * FROM login ";
    $usr=$_SESSION['adminuser'];
    $query1="SELECT * FROM `ing` WHERE 1";
    $result1=mysqli_query($db,$query1);
        while($row = mysqli_fetch_array($result1))
        {
          echo "<tr>";
          echo "<td>" . $row[0] . "</td>"; 
          echo "<td>" . $row[1] . "</td>";
          echo "<td>" . $row[2] . "</td>";
          echo "<td>" . $row[3] . "</td>";
          echo "<td>" . $row[4] . "</td>";
          echo "<td>" . $row[5] . "</td>";



          echo "</tr>";
        } 
      }
      //echo "<td><form action='fineedit.php' method='POST'><select name='sfstat'><option value='paid' >Paid</option><option value='unpaid' selected>No</option></select><button type='submit' name='submit'>submit</button></form></td>";

        ?>
     </tbody>
    </table>
    <button type="submit" name="submit" >SUBMIT</button>

    </form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <script>
      document.getElementById("noieb").onclick=function()
      {
        var i=document.getElementById("noie").value;
      for(var j=1;j<=i;j  )
      {

          var table = document.getElementById("ing");
         var row = table.insertRow(-1);
          var cell1 = row.insertCell(0);
          var cell2 = row.insertCell(1);
          var cell3 = row.insertCell(2);
          var cell4 = row.insertCell(3);
          var cell5 = row.insertCell(4);
          var cell6 = row.insertCell(5);

    var name='ingname' j;
    var code='ingcode' j;
    var cur='ingcur' j;
    var req='ingreq' j;
    var cost='ingcost' j;
    var date='ingdate' j;
    var iname = document.createElement('input');
        iname.setAttribute("type", "text");
        iname.name = "ingname"   j;    
        iname.setAttribute("required", "true");
        cell1.appendChild(iname);
        var icode = document.createElement('input');
        icode.setAttribute("type", "text");
        icode.name = "ingcode"   j;    
        icode.setAttribute("required", "true");
        cell2.appendChild(icode);
        var icur = document.createElement('input');
        icur.setAttribute("type", "number");
        icur.name = "ingcur"   j;      
        icur.setAttribute("required", "true");
        cell3.appendChild(icur);
        var ireq = document.createElement('input');
        ireq.setAttribute("type", "number");
        ireq.name = "ingreq"   j;      
        ireq.setAttribute("required", "true");
        cell4.appendChild(ireq);
        var icost = document.createElement('input');
        icost.setAttribute("type", "number");
        icost.name = "ingcost"   j;     
        icost.setAttribute("required", "true");
        cell5.appendChild(icost);
        var idate = document.createElement('input');
        idate.setAttribute("type", "date");
        idate.name = "ingdate"   j;     
        idate.setAttribute("required", "true");
        cell6.appendChild(idate);
      }
      }

        function delrow(){
          var table = document.getElementById("ing");
          table.deleteRow(-1);

        }   
          $(document).ready(function(){
              $("input[name=edit]").on("click",function(){
                      $(".en").css("display","block");
              })
              $("input[name=save]").on("click",function(){

                  $(".en").css("display","none");
              }) 
          })
         </script>

    </body>
  

Второй HTML-файл

     </html>
        <!DOCTYPE html>
        <head></head>
        <body>

            <form action="ingupdate.php" method="POST" >
                <input type="text" name="noie" placeholder="Enter the no of ingredients to add" style="width:200px;" id="noie"> 
                <button id="noieb">Enter</button>`

                <div id='my-dialog-id' title='my dialog title'>
                    <p>The item <?php print_r($coderepeat);?> already exists do u wish to update??</p>
                    <button name="ingyes" >YES</button>
                    <button name="ingno">NO</button>
                </div>

            <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
            <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

        </body>
  

Комментарии:

1. откуда $_POST['ingcodeX'] берется? Откуда $i берется? Для меня очень неясно, что вы здесь делаете.

2. Извините, не ясно, в чем проблема. Можете ли вы привести пример того, что вы имеете в виду, включая пример задействованных значений данных?

3. я получаю значения переменной со страницы html, и пользователь выбирает количество записей, которые он хочет внести. я создаю поле ввода динамически и задаю имена динамически, поэтому я извлекаю их в php путем объединения ‘ingname’ с $ i, которая является переменной, для которой задано количество полей ввода, запрошенных пользователем. я использую циклы и извлекаю значения этих полей ввода.

4. Вы открыты для SQL-инъекций. Параметризуйте. Без where предложения в update все строки будут обновлены. Это предназначено? Вы имеете в виду, что вы получаете ассоциативный индекс и числовое значение или что-то еще? Вы должны получать несколько строк?

5. да, я сейчас не беспокоюсь о безопасности. я просто пробую что-то