30/09/2018, 18:43

lỗi không insert được dữ liệu

Mọi người ơi, em đang làm form hóa đơn. Em insert dữ liệu vào 2 bảng là hóa đơn và chi tiết hóa đơn. Em đã insert vào bảng hóa đơn (mã hoa don, ngày lập, nhan vien) thì được rồi. nhưng câu insert thứ 2 là insert vào bảng chi tiết hoa đơn thì lại không được mong mọi người giúp đỡ.


(Mình ngĩ là do mình không bắt được id bên mã món bên bảng chi tiết hóa đơn á. nên nó không thể hiểu vào thêm vào được)
file index.php form hóa đơn

<form name="luuhd" id="luuhd" action="modules/demo-table/xuly.php" method="post" enctype="multipart/form-data">	
<h2 style="text-align:center;">Danh sách món trong hóa đơn</h2>
    
  <h5 style="margin-top:10px;margin-bottom:10px;">
     Mã HĐ:  <input name="mahd" type="text" readonly="readonly"  id="mahd" size="3" value="<?php
	   	$r = mysql_query("show table status like 'hoadon' ");
		$row = mysql_fetch_array($r);
		echo $row['Auto_increment'];
	   ?>"/>
        
  	 Ngày lập:  <?php $ngaylap = +7;
            echo '<input type="text" name="ngaylap" size = "20" readonly="readonly"  id="ngaylap" value="'.gmdate("HA:i:s | d-m-Y", time() + 3600*($ngaylap + date("I"))).'">';
        ?>
     Nhân viên:  <input name="nhanvien" type="text" id="nhanvien" readonly="readonly" value="<?php echo $_SESSION['currTen']?>" size="17"/>
    </h5>
          <!-- Bảng chi tiết trong hóa đơn -->
      
   <table class="table table-bordered table-hover" style="margin-left:auto;margin-right:auto;">
       <thead>
          <tr>
             <th>STT</th>
             <th>Mã món</th>
             <th>Tên món</th>
             <th>Đơn giá</th>
             <th>Số lượng</th>
             <th>Thành tiền</th>
             <th>Xóa</th>
             <th>Lưu</th>
          </tr>
       </thead>
       <tbody id="bill-table" class="chitiet">
          <tr>
             <td colspan="8" class="empty">Chưa chọn món</td>
          </tr>
       </tbody>
       <tfoot>
       	<th></th>
        <th></th>
        <th></th>
        <th></th>
       
		<th>Tổng tiền:</th>
        <th style="text-align:center"; class="total" ></th>
         <th></th>
        <th></th>
       </tfoot>
   </table>
   </form>

	<!--
	  <h4 style="text-align:center;margin-top:10px;margin-bottom:10px;">Tổng tiền:<input name="tongtien" type="text" id="tongtien" class ="total" value="" size="20" />-->
     
	 <input type="submit" name="luuhd" id="luuhd" value=" Lưu " />
	  <input type="submit" name="inhd" value=" In Hóa Đơn " />
     </h4>
 </form>
 </div> 
 
<script type="text/javascript">

//hàm của nút delete
	$(function(){
		$('.right').delegate('.delete','click',function(){
			$(this).parent().parent().remove();
		});
	});
//ham luu csdl
/*$(function(){
	$('.chitiet').delegate('.savect','click',function(){
		//luu o day	
	});
})	
*/	
	
//ham tinh tong tien



function total(){
	var t= 0;
	$('.bill-total').each(function(i, e) {
        var amt = $(this).html()-0;
		t += amt;
    });
	$('.total').html(t);
}

//ham tinh tong
(function() {

var index = 1;

$('.btn-choose').on('click', choose);
$('#bill-table').on('change keyup paste', '.bill-quantity', changeValue);

function choose() {
	var self = this,
		bill = $('#bill-table'),
		data = getDataMenu($(self).parent().parent()),
		html = createRow(data);

	if (bill.find('.empty').length) {
		bill.empty();
	}

	bill.append(html);
}

function changeValue() {
	var self = this,
		row = $(self).parent().parent(),
		data = getDataBill(row);

	row.find('.bill-total').html(calculate(data.price, data.quantity));
}

function getDataMenu(row) {
	var id = $(row.find('.col-id')).html(),
		name = $(row.find('.col-name')).html(),
		price = $(row.find('.col-price')).html();
	

	var data = {
		id: id,
		name: name,
		price: price
	}

	return data;
}

function getDataBill(row) {
	var price = $(row.find('.bill-price')).html(),
		quantity = $(row.find('.bill-quantity')).val();
		
	var data = {
		price: price,
		quantity: quantity
	
	}

	return data;
}

function createRow(data) {
	var html = '<tr>';

	html += '<td>' + index + '</td>';
	html += '<td><input type="text" id="col-id" name="col-id" size="3" readonly="readonly" value="' + data.id + '" /></td>';
	html += '<td id="col-name">' + data.name + '</td>';
	html += '<td class="bill-price" id="bill-price">' + data.price + '</td>';
	html += '<td><input type="text" value="1" class="bill-quantity" name="bill-quantity" size = "3" id="bill-quantity" /></td>';
	html += '<td class="bill-total" id="bill-total">' + calculate(data.price, 1) + '</td>';
	html += '<td><input type="submit" value="Delete" class="delete" name="delete"/></td>';
	html += '<td></td>';
	html += '</tr>';
	

	return html;
}

function calculate(price, quantity) {
	return price * quantity;
}



})();

</script>
   

	</div>

form xử lý đê insert dữ liệu

   <?php
	include ("../../../Connections/conf.php");
		
		//dữ liệu của bảng hóa đơn
		//$mahd= $_GET["mahd"];
		$ngaylap = $_GET["ngaylap"];
		$nhanvien = $_GET["nhanvien"];	
	
	if(isset($_POST["luuhd"])){
		mysql_query( "insert into hoadon (ngaylap,manv) 	
							value('$ngaylap','$nhanvien')");
		$id = mysql_insert_id();
		mysql_query("INSERT INTO chitiethd  
						SET mahd = '{$id}',
							mamon = '{$_POST['col-id'][$i]}',
							soluong = '{$_POST['bill-quantity'][$i]}'
						");
	header("location: ../../../manager/index.php?quanly=hoadon&ac=themhd");
	}
?>
Jonly Tran viết 20:51 ngày 30/09/2018

Có ai giúp mình không . Mình đang rất cần bài này ạ.

vũ xuân quân viết 20:56 ngày 30/09/2018

anh không chạy code được nên không biết code của em sai chỗ nào.
Nên em đọc link dưới để biết cách debug trên php.
Em chạy debug rồi đưa lỗi lên đây hoặc là tự lên mạng tìm
Làm lập trình thì phải biết cách debug, để tự mình kiểm tra lỗi.

http://blog.teamtreehouse.com/how-to-debug-in-php

mysql_query( “insert into hoadon (ngaylap,manv)
value(’$ngaylap’,’$nhanvien’)”);

Chỗ này nên kiểm tra nếu insert thành công thì làm tiếp, còn không thì báo lỗi. Làm sao em biết sẽ luôn luôn insert thành công. Đôi khi sẽ bị lỗi mà mình không biết nguyên nhân lỗi.

Jonly Tran viết 20:52 ngày 30/09/2018

em insert

mysql_query( "insert into hoadon (ngaylap,manv) 
value('$ngaylap','$nhanvien')");

này thành công rồi. nó vào được dữ liệu. Vấn đề lấy lấy id của nó để thêm vào bảng chi tiết thì bảng chi tiết nó không vào ạ

vũ xuân quân viết 20:56 ngày 30/09/2018

$id = mysql_insert_id();
mysql_query("INSERT INTO chitiethd
SET mahd = ‘{$id}’,
mamon = ‘{$_POST[‘col-id’][$i]}’,
soluong = ‘{$_POST[‘bill-quantity’][$i]}’
");

Nên anh kêu em đặt debug để xem khi chạy thì nó bị lỗi gì.
Em không đưa ra được bị lỗi gì thì làm sao sửa được.
Mọi người đâu có thể lấy code của em để chạy được.

Jonly Tran viết 20:44 ngày 30/09/2018

chạy cái đó thì nó chỉ hiện lỗi bên js mà em hk bik sửa.

vũ xuân quân viết 20:50 ngày 30/09/2018

Lỗi này liên quan đến js rồi. Chứa chưa dính đến lỗi php.
Để anh nhờ bạn khác vào giúp.

null viết 20:55 ngày 30/09/2018

Thiếu thư viện jQuery. Thêm nó vào trước các file js khác:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
Jonly Tran viết 20:55 ngày 30/09/2018

<script src=“https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js”></script>

mình thêm rồi và nó cũng gị á bạn

null viết 20:58 ngày 30/09/2018

Thứ tự: jQuery > Bootstrap JS > JS do bạn viết.

Jonly Tran viết 20:58 ngày 30/09/2018

hết được 2 lỗi bootstrap á bạn . mà cón 2 lỗi

null viết 20:47 ngày 30/09/2018

Cái đó không quan trọng, code bạn vẫn chạy tốt chứ?

Jonly Tran viết 20:56 ngày 30/09/2018

#Vong_Hoang_Tuong#masoivn ơi, em insert vào được rồi , nhưng chỉ vào được 1 vào được 1 món à

$ngaylap = $_POST["ngaylap"];
	$nhanvien = $_POST["nhanvien"];	

if(isset($_POST["luuhd"])){
	mysql_query( "insert into hoadon (ngaylap,manv) 	
						value('$ngaylap','$nhanvien')");
	$id = mysql_insert_id();
	
	for ($i=0; $i < count($_POST['col-id']);$i++){
		
		mysql_query("INSERT INTO chitiethd  
					SET mahd = '{$id}',
						mamon = '{$_POST['col-id'][$i]}',
						soluong = '{$_POST['bill-quantity'][$i]}'
					");
	}
vũ xuân quân viết 20:54 ngày 30/09/2018

Em tìm hiểu cách debug code đi.
Anh không thể giúp được gì em khi anh không chạy được code này.

Thử kiểm tra xem count($_POST[‘col-id’]) có bao nhiêu dòng,

Bài liên quan
0