【问题标题】:store multidimensional array from repeated form fields in mysql在mysql中存储来自重复表单字段的多维数组
【发布时间】:2019-12-07 12:32:26
【问题描述】:

我有一个像 sn-p 这样的可重复形式。

目标是将此数据存储到数据库中的单独行。

form 和 html 部分没问题,问题是如何在数据库中存储数据。

我使用 print_r 来查看发布的数据等:

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 )

我想使用 php 代码将此表单存储在数据库中:

$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);
}

但是,它不起作用

任何关于数据库存储代码的建议或编辑都会很棒

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>

【问题讨论】:

  • 只需循环遍历数组并将其插入数据库中
  • 你能给我示例代码吗?
  • 打印您在php中收到的数组并在此处发布。
  • 我有两个问题,如果需要,你真的需要它作为 mysql 数据库吗?你的数据库架构是什么

标签: javascript php html mysql


【解决方案1】:

MySQLi 支持准备好的语句。除非您只选择/更新一两行,否则您应该使用它而不是滥用数据库。

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

【讨论】:

  • 执行在 MySQL 中直接插入代码而不使用 PHP(通过 phpMyAdmin)并报告给我们。如果您的输入有问题,那么您就会知道。请注意,我们没有您的数据库结构。
猜你喜欢
  • 2012-06-09
  • 1970-01-01
  • 2017-11-12
  • 2018-02-11
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
相关资源
最近更新 更多