สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

moomai
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 07/12/2016 10:54 am

สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย moomai »

สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ
คือ การแสดงรายละเอียดข้อมูลดึงมาจาดไอดี แต่ต้องการเมื่อเราทำการแก้ไขแล้วให้แสดงรายละเอียดจากไอดีล่าสุดที่ทำการแก้ไข ต้องทำยังไงคะ (เมื่อแก้ไขแล้วกด คำนวณ โปรแกรมจะบันทักข้อมูลเป็นไอดีใหม่)
1.png
1.png (51.29 KiB) Viewed 2603 times
โค้ดที่ใช้

โค้ด: เลือกทั้งหมด

<?php
require_once'conn.php';
include '../header.php';

if(isset($_GET['id'])){
	$sql = "SELECT * FROM $datavat WHERE id = ".$_GET['id'];
	$result = mysql_query($sql); 
	$fetch = mysql_fetch_assoc($result);
}
?>

<link rel="stylesheet" href="css/m.css"> 

<meta charset="UTF-8">
<title>Show_vat</title>

<ol class="breadcrumb">
	<li role="presentation"><a href="#"><i class="glyphicon glyphicon-cog"></i> Tools</a></li> 
	<li role="presentation"><a href="vat.php"><i class="glyphicon glyphicon-edit"></i> Calculation Form</a></li>
	<li role="presentation"><a href="listvat.php"><i class="glyphicon glyphicon-th-list"></i> List Table</a></li>  
	<li role="presentation" class="active"><a href=""><i class="glyphicon glyphicon-share"></i> View</a></li>  
</ol>

<form method="post" action="#" name="form">
<div class="container-fluid">
<div class="row">
	<div class="col-md-12 well well-lg" align="center">
		<h2>โปรแกรมคำนวณราคาก่อนบวก vat 7%</h2> <br>             
		<div class="row well well-lg">
			<div class="col-md-6">
				<div class="input-group">
					<span class="input-group-addon alert-info" id="basic-addon1">ชื่อผู้ใช้งาน</span>
					<input type="text" required name="name" class="form-control" autocomplete="off" placeholder="กรุณาใส่ชื่อ" value="<?php echo (isset($fetch['name'])) ? $fetch['name'] : ''; ?>" >
				</div>
			</div>
			<div class="col-md-6">
				<div class="input-group"><span class="input-group-addon alert-info"  id="basic-addon1">จำนวนเงิน</span>
					<input type="number" required name="price" class="form-control text-right" autocomplete="off"  placeholder="0.00" value="<?php echo (isset($fetch['price'])) ? $fetch['price'] : ''; ?>"> 
					<span class="input-group-addon alert-info">บาท </span>
				</div>
			</div>						
		</div>

		<input type="submit" name="submit" class="btn btn-success" value="คำนวณ" onclick="window.location='showvat.php';"> 
		<input type="reset" name="reset" class="btn btn-warning" onclick="window.location='showvat.php';">

	</div>
</div>

<?php
		if (isset($_GET['id'])) {
			echo '<input type = "hidden" name = "id" value = "'.$_GET['id'].'" />';
		}
		if (isset($_POST['submit'])){
			$username=$_POST['name'];
			$money=0;
			$money=$_POST['price'];  
			$sum=100;
			$sum1=107;
			$num=$money*$sum/$sum1;
			$vat=$money-$num;
			date_default_timezone_set("Asia/Bangkok");
			$datetime = time();
			$ip = $_SERVER["REMOTE_ADDR"]; 
		$sql = "INSERT INTO $datavat (name,time,ip_address,price,vat,money)"."VALUES ('$username','$datetime','$ip','$money','$vat','$num')";
			// echo $sql;
			// exit();
			mysql_query($sql) or die('*** ไม่สามารถบันทึกข้อมูลได้ ***');
		}
?>

	<div class="row">
		<div class="col-md-12 well well-lg">
			<table id="table-listtax" class="table table-striped">				
				<tbody>
					<tr class="active">
						<td width="50%">
							<p><b>ลำดับ</b></p>							
						</td>
						<td>
							<?php echo $fetch['id']; ?>
						</td>
					</tr>
					<tr class="warning">
						<td>
							<p><b>ชื่อผู้ใช้งาน</b></p>						
						</td>
						<td>
							<?php 
							
							//echo $_REQUEST['name']."<br/> pr - ".$_REQUEST['price']."<br/>";
							
							echo $fetch['name']; 

							?>
						</td>
					</tr>
					<tr class="active">						
						<td>
							<p><b>จำนวนเงิน</b></p>							
						</td>
						<td>
							<?php echo number_format($fetch['price'], 2)." บาท"; ?>
						</td>
					</tr>
					<tr class="warning">
						<td>
							<p><b>จำนวนเงินภาษีมูลค่าเพิ่ม Vat 7%</b></p>								
						</td>												
						<td>
							<?php echo number_format($fetch['vat'],2)."  บาท"; ?>
						</td>
					</tr>					
					<tr class="active">
						<td>
							<p><b>จำนวนเงินที่ยังไม่รวมภาษี vat 7% </b></p>							
						</td>
						<td>
							<?php echo number_format($fetch['money'], 2)."  บาท"; ?>
						</td>								
					</tr>
					<tr class="warning">
						<td>
							<p><b>เวลาที่ใช้งาน</b></p>
						</td>
						<td>
							<?php 
							date_default_timezone_set("Asia/Bangkok");
							echo (date("Y-m-d / H:i:s",$fetch['time'])); ?>
						</td>
					</tr>
					<tr class="active">
						<td>
							<p><b>หมายเลข IP Address</b></p>							
						</td>					
						<td>
							<?php echo $fetch['ip_address']; ?>
						</td>
					</tr>					
				</tbody>
			</table>
		</div>
	</div>
</form>

</div>

The truth is not as elegant as the idea.
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

วิธีที่ง่ายที่สุดคือ
1. หลังจาก insert ไปเเล้ว ต้องหาไห้รู้ว่า ID ล่า่สุดที่ insert เข้าไปเป็น ID อะไร
ลองคำสั่งนี้

โค้ด: เลือกทั้งหมด

$last_id = mysqli_insert_id($con)
2. หลังจากนั้นให้ทำ redirect หน้าไป ที่ url ใหม่

โค้ด: เลือกทั้งหมด

  header( "location: ***/***/showvat.php?id=$last_id" );
 exit(0);
moomai
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 07/12/2016 10:54 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย moomai »

นำมาใช้แล้วเกิด Error ค่ะ อยากทราบว่าผิดตรงไหน ต้องแก้ยังไงคะ
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Joomla3.6\tools\header.php:307) in C:\xampp\htdocs\Joomla3.6\tools\vat\showvat.php on line 10
โค้ดที่ทำค่ะ
<?php
require_once'conn.php';
include '../header.php';

if(isset($_GET['id'])){
$sql = "SELECT * FROM $datavat WHERE id = ".$_GET['id'];
$result = mysql_query($sql);
$fetch = mysql_fetch_assoc($result);
$last_id = $_GET['id'];
header("location: tools/vat/showvat.php?id=$last_id");
exit(0);

}

?>

<link rel="stylesheet" href="css/m.css">

<meta charset="UTF-8">
<title>Show_vat</title>

<ol class="breadcrumb">
<li role="presentation"><a href="#"><i class="glyphicon glyphicon-cog"></i> Tools</a></li>
<li role="presentation"><a href="vat.php"><i class="glyphicon glyphicon-edit"></i> Calculation Form</a></li>
<li role="presentation"><a href="listvat.php"><i class="glyphicon glyphicon-th-list"></i> List Table</a></li>
<li role="presentation" class="active"><a href=""><i class="glyphicon glyphicon-share"></i> View</a></li>
</ol>

<form method="post" action="#" name="form">
<div class="container-fluid">
<div class="row">
<div class="col-md-12 well well-lg" align="center">
<h2>โปรแกรมคำนวณราคาก่อนบวก vat 7%</h2> <br>
<div class="row well well-lg">
<div class="col-md-6">
<div class="input-group">
<span class="input-group-addon alert-info" id="basic-addon1">ชื่อผู้ใช้งาน</span>
<input type="text" required name="name" class="form-control" autocomplete="off" placeholder="กรุณาใส่ชื่อ" value="<?php echo (isset($fetch['name'])) ? $fetch['name'] : ''; ?>" >
</div>
</div>
<div class="col-md-6">
<div class="input-group"><span class="input-group-addon alert-info" id="basic-addon1">จำนวนเงิน</span>
<input type="number" required name="price" class="form-control text-right" autocomplete="off" placeholder="0.00" value="<?php echo (isset($fetch['price'])) ? $fetch['price'] : ''; ?>">
<span class="input-group-addon alert-info">บาท </span>
</div>
</div>
</div>

<input type="submit" name="submit" class="btn btn-success" value="คำนวณ" onclick="window.location='showvat.php';">
<input type="reset" name="reset" class="btn btn-warning" onclick="window.location='showvat.php';">

</div>
</div>

<?php
// $last_id = $_GET['id'];
if (isset($_GET['id'])) {
echo '<input type = "hidden" name = "id" value = "'.$_GET['id'].'" />';

}
if (isset($_POST['submit'])){
$username=$_POST['name'];
$money=0;
$money=$_POST['price'];
$sum=100;
$sum1=107;
$num=$money*$sum/$sum1;
$vat=$money-$num;
date_default_timezone_set("Asia/Bangkok");
$datetime = time();
$ip = $_SERVER["REMOTE_ADDR"];


$sql = "INSERT INTO $datavat (name,time,ip_address,price,vat,money)"."VALUES ('$username','$datetime','$ip','$money','$vat','$num')";
// echo $sql;
// exit();
mysql_query($sql) or die('*** ไม่สามารถบันทึกข้อมูลได้ ***');
$last_id = mysqli_insert_id($sql);


}
?>

<div class="row">
<div class="col-md-12 well well-lg">
<table id="table-listtax" class="table table-striped">
<tbody>
<tr class="active">
<td width="50%">
<p><b>ลำดับ</b></p>
</td>
<td>
<?php echo $fetch['id']; ?>
</td>
</tr>
<tr class="info">
<td>
<p><b>ชื่อผู้ใช้งาน</b></p>
</td>
<td>
<?php

//echo $_REQUEST['name']."<br/> pr - ".$_REQUEST['price']."<br/>";

echo $fetch['name'];

?>
</td>
</tr>
<tr class="active">
<td>
<p><b>จำนวนเงิน</b></p>
</td>
<td>
<?php echo number_format($fetch['price'], 2)." บาท"; ?>
</td>
</tr>
<tr class="info">
<td>
<p><b>จำนวนเงินภาษีมูลค่าเพิ่ม Vat 7%</b></p>
</td>
<td>
<?php echo number_format($fetch['vat'],2)." บาท"; ?>
</td>
</tr>
<tr class="active">
<td>
<p><b>จำนวนเงินที่ยังไม่รวมภาษี vat 7% </b></p>
</td>
<td>
<?php echo number_format($fetch['money'], 2)." บาท"; ?>
</td>
</tr>
<tr class="info">
<td>
<p><b>เวลาที่ใช้งาน</b></p>
</td>
<td>
<?php
date_default_timezone_set("Asia/Bangkok");
echo (date("Y-m-d / H:i:s",$fetch['time'])); ?>
</td>
</tr>
<tr class="active">
<td>
<p><b>หมายเลข IP Address</b></p>
</td>
<td>
<?php echo $fetch['ip_address']; ?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</form>
<?php

?>

<!-- <script>
function myFunction() {
location.reload();
}
</script> -->


</div>
<?php include '../footer.php';?>
แก้ไขล่าสุดโดย moomai เมื่อ 11/04/2017 4:08 pm, แก้ไขไปแล้ว 1 ครั้ง.
The truth is not as elegant as the idea.
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21988
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

การใช้คำสั่ง header() ห้ามมีการแสดงผลก่อนคำสั่งนี้จะทำงาน
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
AePongsak
PHP VIP Members
PHP VIP Members
โพสต์: 4996
ลงทะเบียนเมื่อ: 17/09/2016 10:09 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย AePongsak »

Error แบบนี้คืออะไรอ่า่ครับ

Warning: mysql_insert_id() expects parameter 1 to be resource, string given in

โค้ด: เลือกทั้งหมด

								require_once 'connect.php';
								
								
								$sql = "INSERT INTO $table_con (name, value, unit, Bytes, Kb, Mb, Gb, Tb, date, ip)"
									. "VALUES ('$name','$value', '$unit', '$bytes', '$kb', '$mb', '$gb', '$tb', '$date', '$ip')";
								
								$last_id = mysql_insert_id($sql);
								echo $last_id;
รูปภาพ
ξν℮ry story has an end but in life every end is a neω ßeginning.
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21988
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

AePongsak เขียน:Error แบบนี้คืออะไรอ่า่ครับ

Warning: mysql_insert_id() expects parameter 1 to be resource, string given in

โค้ด: เลือกทั้งหมด

								require_once 'connect.php';
								
								
								$sql = "INSERT INTO $table_con (name, value, unit, Bytes, Kb, Mb, Gb, Tb, date, ip)"
									. "VALUES ('$name','$value', '$unit', '$bytes', '$kb', '$mb', '$gb', '$tb', '$date', '$ip')";
								
								$last_id = mysql_insert_id($sql);
								echo $last_id;
ต้องคิวรี่คำสั่งก่อนครับ ในโค้ดเห็นแต่เขียนคำสั่ง insert ข้อมูลไว้ แต่ไม่ได้คิวรี่ แล้วเรียกเอาไอดีเฉยเลย
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
AePongsak
PHP VIP Members
PHP VIP Members
โพสต์: 4996
ลงทะเบียนเมื่อ: 17/09/2016 10:09 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย AePongsak »

ยังขึ้นเหมือนเดิม
Warning: mysql_insert_id() expects parameter 1 to be resource, string given in /opt/lampp/htdocs/m039joomla/tools/Ex-1-convert/save.php on line 133

โค้ด: เลือกทั้งหมด

								$sql = "INSERT INTO $table_con (name, value, unit, Bytes, Kb, Mb, Gb, Tb, date, ip)"
									. "VALUES ('$name','$value', '$unit', '$bytes', '$kb', '$mb', '$gb', '$tb', '$date', '$ip')";

								mysql_query($sql) or die('Save Error');
								
								$last_id = mysql_insert_id($sql);
								echo $last_id;
รูปภาพ
ξν℮ry story has an end but in life every end is a neω ßeginning.
moomai
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 07/12/2016 10:54 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย moomai »

เอาคำสั่ง mysql_insert_id($sql) มาไว้หลัง INSERT แต่ก็ echo last_id ไม่ได้ค่ะ

โค้ด: เลือกทั้งหมด

if (isset($_POST['submit'])){
			$username=$_POST['name'];
			$money=0;
			$money=$_POST['price'];  
			$sum=100;
			$sum1=107;
			$num=$money*$sum/$sum1;
			$vat=$money-$num;
			date_default_timezone_set("Asia/Bangkok");
			$datetime = time();
			$ip = $_SERVER["REMOTE_ADDR"]; 

			

			$sql = "INSERT INTO $datavat (name,time,ip_address,price,vat,money)"."VALUES ('$username','$datetime','$ip','$money','$vat','$num')";
			// echo $sql;
			// exit();
			mysql_query($sql) or die('*** ไม่สามารถบันทึกข้อมูลได้ ***');	

			$last_id = mysql_insert_id($sql);
			echo $last_id;
			
		}
error ที่ขึ้นหน้าเว็บค่ะ

Warning: mysql_insert_id() expects parameter 1 to be resource, string given in C:\xampp\htdocs\Joomla3.6\tools\vat\showvat.php on line 79
The truth is not as elegant as the idea.
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21988
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

แบบนี้

โค้ด: เลือกทั้งหมด

$last_id = mysql_insert_id();
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามค่ะ ต้องการแสดงข้อมูลเป็นไอดีใหม่เมื่อมีการแก้ไขต้องทำยังไงคะ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

thatsawan เขียน:วิธีที่ง่ายที่สุดคือ
1. หลังจาก insert ไปเเล้ว ต้องหาไห้รู้ว่า ID ล่า่สุดที่ insert เข้าไปเป็น ID อะไร
ลองคำสั่งนี้

โค้ด: เลือกทั้งหมด

$last_id = mysqli_insert_id($con) 
2. หลังจากนั้นให้ทำ redirect หน้าไป ที่ url ใหม่

โค้ด: เลือกทั้งหมด

  header( "location: ***/***/showvat.php?id=$last_id" );
 exit(0); 
ตัวอย่าง
https://www.w3schools.com/php/func_mysqli_insert_id.asp
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 82