-2

i have a repeatable form like snippet.

the goal is store this data to database on separated row.

form and html part is ok, problem is how to store data in database.

i use print_r to see posted data, and its like:

Array ( [cid] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [tool] => Array ( [0] => 10 [1] => 18 [2] => 71 ) [arz] => Array ( [0] => 15 [1] => 12 [2] => 987 ) [tedad] => Array ( [0] => 9 ) [farskari] => Array ( [0] => TTF [1] => TTF [2] => AAF ) [rahdarbi] => Array ( [0] => 1 [1] => 1 [2] => ) [arzdo] => Array ( [0] => 1 [1] => ) [tooldo] => Array ( [0] => 1 [1] => ) [arzyk] => Array ( [0] => 1 ) [toolyk] => Array ( [0] => 1 ) [submit] => send )

i want to store this form in database using php code:

$count2 = count($_POST['cid']);
 for($i=1;$i<=$count2;$i++)
 {
 $save = mysqli_query($db, "INSERT into members (cid, tool, arz, tedad, farskari, rahdarbi, arzyk, arzdo, toolyk, tooldo) VALUES ('".$_POST["cid$i"]."', '".$_POST["tool$i"]."', '".$_POST["arz$i"]."', '".$_POST["tedad$i"]."', '".$_POST["farskari$i"]."', '".$_POST["rahdarbi$i"]."', '".$_POST["arzyk$i"]."', '".$_POST["arzdo$i"]."', '".$_POST["toolyk$i"]."', '".$_POST["tooldo$i"]."')");
 }
if($save)
{
echo 'Records added successfully.';
}
else
{
echo 'ERROR: Could not able to execute $sql. ' . mysqli_error($db);
}

but, it doesn't work

any suggestion or edit on database storing code would be great <3

function addRow(tool,arz,tedad,farskari,farstex,navarkari,arzyk,arzdo,toolyk,tooldo) {
 $('#content').append('<tr><input type="hidden" name="cid[]" value="<?php echo $cid; ?>"><td><input type="text" class="form-control" name="tool[]" value="'+tool+'"></td><td><input type="text" class="form-control" name="arz[]" value="'+arz+'"></td><td><input type="text" class="form-control" name="tedad" value="'+tedad+'"></td><td><select name="farskari[]" class="form-control"><option value="'+farskari+'">'+farstex+'</option></select></td><td><input type="checkbox" name="rahdarbi[]" value="1"></td><td><input type="checkbox" name="arzyk[]" value="1"></td><td><input type="checkbox" name="arzdo[]" value="1"></td><td><input type="checkbox" name="toolyk[]" value="1"></td><td><input type="checkbox" name="tooldo[]" value="1"></td><td><input type="button" class="remove" value="Remove" /></td></tr>');
}

$('#addnew').click(function(){
  var tool = $('#tool').val();
  var arz = $('#arz').val();
  var tedad = $('#tedad').val();
  var farsvalue = document.getElementById("farskari");
  var farskari = farsvalue.options[farsvalue.selectedIndex].value;
  var farstex = farsvalue.options[farsvalue.selectedIndex].text;
  var navarkari = $('#rahdarbi').val();
  var arzyk = $('#arzyk').val();
  var arzdo = $('#arzdo').val();
  var toolyk = $('#toolyk').val();
  var tooldo = $('#tooldo').val();
  addRow(tool,arz,tedad,farskari,farstex,rahdarbi,arzyk,arzdo,toolyk,tooldo);
  $('#tool').val('');
  $('#arz').val('');
  $('#tedad').val('');
  $('#farskari').val('');
  $('#rahdarbi').val('');
  $('#arzyk').val('');
  $('#arzdo').val('');
  $('#toolyk').val('');
  $('#tooldo').val('');
  $('.remove').on('click', function(){
    $(this).closest('tr').remove();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="final.php" method="post">
<table align="center">
<thead>
<tr>
 <td>tool</td>
 <td>arz</td>
 <td>tedad</td>
 <td>far</td>
 <td>rahdar</td>
 <td>arz1</td>
 <td>arz2</td>
 <td>tool1</td>
 <td>tool2</td>
 <td>+/-</td>
</tr>
</thead>
<tbody id="content"></tbody>
<tbody>
<tr>
 <input type="hidden" name="cid[]" value="<?php echo $cid; ?>">
 <td><input type="text" class="form-control" id="tool" name="tool[]"></td>
 <td><input type="text" class="form-control" id="arz" name="arz[]"></td>
 <td><input type="text" class="form-control" id="tedad" name="tedad[]"></td>
 <td>
  <select id="farskari" name="farskari[]" class="form-control">
         <option value="0">no</option>
   <option value="TF">one</option>
       </select>
 </td>
 <td><input type="checkbox" id="rahdarbi" name="rahdarbi[]" value="1"></td>
 <td><input type="checkbox" id="arzyk" name="arzyk[]" value="1"></td>
 <td><input type="checkbox" id="arzdo" name="arzdo[]" value="1"></td>
 <td><input type="checkbox" id="toolyk" name="toolyk[]" value="1"></td>
 <td><input type="checkbox" id="tooldo" name="tooldo[]" value="1"></td>
 <td><input type="button" name="addnew" id="addnew" value="Add" /></td>
</tr>
</tbody>
</table>
 <input type="submit" class="btn btn-primary" name="submit" value="send">
</form>
arshidok
  • 3
  • 4

1 Answers1

0

MySQLi supports prepared statements. Unless you are selecting/updating only one or two rows, then you should use it and not abuse the database.

https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php

nterix
  • 1
  • 2
  • Excute that insert code in MySQL directly without PHP (through phpMyAdmin) and report us back. If it is problem with your input, then you will know. Please note we do not have your database structure. – nterix Dec 07 '19 at 14:29