php - 在单个 mysql 列中插入动态字段输入

标签 php jquery html mysql

下面代码的概念是允许用户通过收集每个输入并将它们发布到单独的列中来将多个输入字段输入到数据库中,如下面的代码片段所示。

我遇到的问题是,当我尝试插入代码时,它只会在 mysql 表中插入“数组”,因此我尝试使用 foreach($BX_NAME as $a => $b){ 的原因是什么? > 现在它只输入最后一个输入而不是整个数组。在谷歌搜索和研究之后,我发现有一个名为 serialize() 的函数,但问题是它将整个数组发布到一个单独的列中,这有效..但我相信如果我单独插入每一列会更好。

任何有助于故障排除的帮助将不胜感激。

     $error = false;

     if ( isset($_POST['btn-signup']) ) {

      // clean user inputs to prevent sql injections


      $company_invoice = trim($_POST['company_invoice']);
      $company_invoice = strip_tags($company_invoice);
      $company_invoice = htmlspecialchars($company_invoice);

      $contact_name = trim($_POST['contact_name']);
      $payment_type = strip_tags($contact_name);
      $payment_type = htmlspecialchars($contact_name);

      $added_by = trim($_POST['added_by']);
      $added_by = strip_tags($added_by);
      $added_by = htmlspecialchars($added_by);

            $chkbox = $_POST['chk'];
            $BX_NAME=$_POST['BX_NAME'];
            $BX_PRICE_POST['BX_price'];     

       foreach($BX_NAME as $a => $b){ ?>

                    <?php echo $BX_NAME[$a]; ?>
                  <?php echo $BX_price[$a]; 
                }

      // if there's no error, continue to Registeration
      if( !$error ) {

       $query = "INSERT INTO company_invoices(company_name,contact_name,BX_NAME,BX_price,added_by,date_added) VALUES('$company_name','$contact_name','$BX_NAME[$a]','$BX_price[$a]', ' $added_by',now())";
       $res = mysql_query($query);

function addRow(tableID) {
	var table = document.getElementById(tableID);
	var rowCount = table.rows.length;
	if(rowCount < 5){							// limit the user from creating fields more than your limits
		var row = table.insertRow(rowCount);
		var colCount = table.rows[0].cells.length;
		for(var i=0; i<colCount; i++) {
			var newcell = row.insertCell(i);
			newcell.innerHTML = table.rows[0].cells[i].innerHTML;
		}
	}else{
		 alert("Maximum Passenger per ticket is 5.");
			   
	}
}

function deleteRow(tableID) {
	var table = document.getElementById(tableID);
	var rowCount = table.rows.length;
	for(var i=0; i<rowCount; i++) {
		var row = table.rows[i];
		var chkbox = row.cells[0].childNodes[0];
		if(null != chkbox && true == chkbox.checked) {
			if(rowCount <= 1) { 						// limit the user from removing all the fields
				alert("Cannot Remove all the Passenger.");
				break;
			}
			table.deleteRow(i);
			rowCount--;
			i--;
		}
	}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <legend>Invoice Details</legend>
        <p> 
          <input type="button" value="Add Row" onClick="addRow('dataTable')" /> 
          <input type="button" value="Remove Row" onClick="deleteRow('dataTable')"  /> 
          <p>(All acions apply only to entries with check marked check boxes only.)</p>
        </p>
               <table id="dataTable" class="form" border="0">
                  <tbody>
                    <tr>
                      <p>
            <td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td>
            <td>
              <label>Item Name</label>
              <input type="text" required="required" name="BX_NAME[]">
             </td>
             <td>
              <label for="BX_price">Price</label>
              <input type="text" required="required"   name="BX_price[]">
               </td>
             
              </p>
                    </tr>
                    </tbody>
                </table>

最佳答案

要将每一个都放入数据库,请尝试将 PHP mysql 命令放入 foreach 循环中,如下所示:

foreach($BX_NAME as $a => $b){
    echo $BX_NAME[$a]; 
    echo $BX_price[$a]; 

    $query = "INSERT INTO company_invoices(company_name,contact_name,BX_NAME,BX_price,added_by,date_added) VALUES('$company_name','$contact_name','$BX_NAME[$a]','$BX_price[$a]', ' $added_by',now())";
   $res = mysql_query($query);

}

关于php - 在单个 mysql 列中插入动态字段输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41001741/

相关文章:

jquery序列化问题

Javascript:有条件地包含基于 angularJS 的 webapp 中的脚本

javascript - 对象在 IE9 和 IE8 中不支持属性或方法 'Toggle'

javascript - JQuery 遍历多个/所有具有特定名称的 HTML 元素

php - 这个 MySQL 查询语法有什么问题?

php - 使用 PHP 在 FTP 服务器上创建文件夹

php - 所有浏览器的屏幕分辨率

php - 上传到 laravel 5.2 后调整图像大小的问题

javascript - .setAttribute 在 for 循环中不起作用 - JavaScript

滚动时 JavaScript 数字发生变化