【问题标题】:Having multiple INSERT INTO won't work有多个 INSERT INTO 不起作用
【发布时间】:2014-03-23 17:56:11
【问题描述】:

我仍然是这里的新手,我的代码有一个错误,我想要的是当我添加一些东西时,所有三个表都应该有这些数据,但是只有一个表有这些数据,而这两个表是空的。

这是我的html:

<table class="table table-bordered " >
<thead>
<tr>
  <th><center>Product code</center></th>
  <th><center>Name</center></th>
  <th><center>Price</center></th>
  <th><center>Quantity</center></th>
  <th><center>Total</center></th>
</tr>
</thead>
<tbody> 
  <?php
   $i=0;
   $sql = "SELECT * FROM product, inventory WHERE inventory.product_code =     product.product_code AND array = 1 ";
$query =  mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query)) {
  while ($row = mysql_fetch_array($query)) {
    $i++;
    echo "<tr id='invoicelist'>";
    echo "<td id='pcode-".$i."'>".$row['product_code']."</td>";
    echo "<td class='col-xs-3'>".$row['name']."</td>";
    echo "<td class='col-xs-2'><input type='hidden' id='price-".$i."' alt='totalqp-".$i."' value='".$row['product_price']."'/>".$row['product_price']."</td>";
    echo "<td class='col-xs-3'><div class='input-group'><input id='Quantity-".$i."' name='Quantity-".$i."' type='number' placeholder='' 
          class='form-control input-xs Quantity' min='1' max=".$row['quantity']."  alt='".$i."' required> 
          <span class='input-group-addon'>".$row['quantity']."</span></div></td>";
    echo "<td class='col-xs-2'><div id='totalqp-".$i."' class='totalq'>0</div></td>";
    echo "</tr>";
  }
}
?>
</tbody>
<tfoot>
  <th></th>
  <th></th>
  <th><label class="pull-right">Total</label></th>
  <th>
    <div id="totalquantity">0</div>
  </th>
  <th>
  <div id="totaltotal">0</div>
  </th>
</tfoot>
</table>
<form class="form-horizontal" method="POST" action="E_invoice.php">
  <fieldset>

   <!-- Form Name -->
   <legend></legend>

   <!-- Text input-->
   <div class="form-group">
     <label class="col-md-4 control-label" for="Cname">Customer name</label>  
     <div class="col-md-5">
       <input id="Cname" name="Cname" type="text" placeholder="" class="form-control input-md" required>

     </div>
   </div>

   <!-- Text input-->
    <div class="form-group">
     <label class="col-md-4 control-label" for="Contact_num">Contact num</label>  
     <div class="col-md-5">
       <input id="Contact-num" name="Contact_num" type="text" placeholder="" class="form-control input-md" required>

      </div>
     </div>

     <!-- Text input-->
     <div class="form-group">
       <label class="col-md-4 control-label" for="Address">Address</label>  
       <div class="col-md-5">
         <input id="Address" name="Address" type="text" placeholder="" class="form-control input-md" required>

        </div>
      </div>

      <div class="form-group">
      <label class="col-md-4 control-label" for="Date">Date</label>  
        <div class="col-md-5">
         <input id="Date" name="Date" type="date" placeholder="" class="form-control input-md" required>

       </div>
     </div>

     <div>
       <div class="col-md-9"></div>
        <button id="Add" name="Add" class="btn btn-primary">Cancel</button>
       <input type="submit" class="btn btn-warning"  id="invoice-yes">
       </div>

   </fieldset>
   </form>

带有ajax的jquery:

$("#invoice-yes").on('click', function () {
var Cname = $("#Cname").val();
var Cnum = $("#Contact-num").val();
var Address = $("#Address").val();
var Dates = $("#Date").val();
var totalp = $("#totaltotal").text();
var quant = new Array();
var pcode = new Array();
var i = 1;
$('.Quantity').each(function() {
  quant.push($(this).val());
  pcode.push($('#pcode-' + i).text());
  i++;
});
$.ajax({
  type:'POST',
  url:'E_invoice_confirm.php',
  data:{Cname:Cname,
        Cnum:Cnum,
        Address:Address,
        Dates:Dates,
        totalp:totalp,
        quant:quant,
        pcode:pcode},
        success: function(data) {
          alert('Successful!');
        }
});
});

php 插入代码:

<?php
session_start();

include('connection.php');
$Cname = $_POST['Cname'];
$Cnum = $_POST['Cnum'];
$Address = $_POST['Address'];
$Dates = $_POST['Dates'];
$totalp = $_POST['totalp'];
$quant = $_POST['quant'];
$pcode = $_POST['pcode'];

$sql = "INSERT INTO customer (name,address,contact) VALUES ('$Cname', '$Address', '$Cnum') ";
$query = mysql_query($sql) or die(mysql_error());

$s = "SELECT * FROM customer WHERE customer_id = LAST_INSERT_ID() ";
$q = mysql_query($s) or die(mysql_error());
$r = mysql_fetch_array($q);

$s2 = "SELECT * FROM employee WHERE username = '".$_SESSION['sess_user']."' ";
$q2 = mysql_query($s2) or die(mysql_error());
$r2 = mysql_fetch_array($q2);

$sql2 = "INSERT INTO order (Dates,total_amount,customer_id,employee_name) VALUES ('$Dates', '$totalp', '".$r['customer_id']."', '".$r2['employee_name']."' ) ";
$query2 = mysql_query($sql2) or die(mysql_error());

$s3 = "SELECT * FROM order WHERE order_id = LAST_INSERT_ID() ";
$q3 = mysql_query($s3) or die(mysql_error());
$r3 = mysql_fetch_array($q3);

$sql3 = "INSERT INTO order_details (quantity, product_code, order_id) VALUES ('$quant', '$pcode', '".$r3['order_id']."') ";
$query3 = mysql_query($sql3) or die(mysql_error());

if($query && $query2 && $query3)
{
    echo "<center>success</center>";
}
else {
    echo mysql_error();
}



   ?>

【问题讨论】:

  • @TVK 没有错误,他只是想让你看看他的代码有多漂亮。
  • 在我的php插入代码中只有第一次插入执行时出现错误
  • 所以呃...你要告诉我们错误吗?
  • $_POST 数据直接放入查询而不使用proper escapinggo wrong! 可能是什么?请不要这样做。您还使用了已从 PHP 中删除的已弃用的mysql_query 接口,因此您最终必须使用re-write this with PDO。还不如现在开始,解决过程中的很多问题。没关系,您是新手,请继续阅读 guidelines for writing PHP

标签: php jquery mysql


【解决方案1】:

我在$sql2$sql3 中发现了错误。该错误是您在int 值中放置了单引号的错误。当您将引号添加到这样的变量时,您已将其作为字符串。我不确定customer_id,但我建议您将其存储为intorder_id 也是如此

$sql2 = "INSERT INTO order (Dates,total_amount,customer_id,employee_name)
 VALUES ('$Dates', $totalp, ".$r['customer_id'].", '".$r2['employee_name']."' ) ";

$sql2 中,我删除了$totalp$r['customer_id'] 中的单引号

$sql3 = "INSERT INTO order_details (quantity, product_code, order_id)
VALUES ($quant, '$pcode', ".$r3['order_id'].") ";

$sql3 中,我删除了$quant$r3['order_id'] 中的单引号。但是,我不知道product_code 是不是int,所以我就这样离开了。

如果是int,那么只需从$pcode 中删除单引号。

【讨论】:

  • @Fred -ii- 感谢您让我的回答更具可读性。我是新来的:-)
猜你喜欢
  • 2016-06-19
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多