Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > PHP Mysqli สอบถามเรื่องการ Update ผลการคำนวน 2 ตาราง โดยให้แสดงผลลัพธ์อีกตารางหนึ่ง



 

PHP Mysqli สอบถามเรื่องการ Update ผลการคำนวน 2 ตาราง โดยให้แสดงผลลัพธ์อีกตารางหนึ่ง

 



Topic : 134607



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์




PHP Mysqli สอบถามเรื่องการ Update ผลการคำนวน 2 ตาราง โดยให้แสดงผลลัพธ์อีกตารางหนึ่ง

ผมต้องการ นำจำนวนคงเหลือ (Material_qty) มาลบ กับจำนวนนับ (Material_Count) แล้วให้แสดงผลใน ตาราง Material_diff ครับ
จะต้องเขียนคำสั่ง sql อย่างไรครับ ขอบคุณครับ

A

B

C



Tag : PHP, MySQL, Appserv







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-12-06 16:00:53 By : Uhere View : 1320 Reply : 13
 

 

No. 1

Guest


ลองดูครับ

Code (SQL)

 update b
 set b.MaterailDiff = a.qty- a.count
 from mainTable a
 inner join Showtable b on a.id = b.id
where a.desc = 'นม'








แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 17:26:35 By : WWWWIN
 


 

No. 2



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : WWWWIN เมื่อวันที่ 2019-12-06 17:26:35
รายละเอียดของการตอบ ::

ยังไม่ได้เลยครับ
ลองเขียนแบบนี้ก็ไม่ได้ครับ
$sql ="UPDATE material SET Material_diff = Material_qty - Material_Count Where Material_id='".$_POST["Material_id"]."' ";


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 21:40:23 By : Uhere
 

 

No. 4



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : Uhere เมื่อวันที่ 2019-12-06 21:40:23
รายละเอียดของการตอบ ::
มาเป็นรูปงั้นขออธิบาย เป็นภาษาแล้วกันนะครับ
1. หลัง submit เนี่ย Select ข้อมูล id นั้น ออกมาก่อน
2. หลังจาก select id นั้นออกมาแล้ว นำค่า Field ที่ต้องการมาหักลบ กับช่อง textbox โดยตั้งค่า Variable รองรับผลลัพท์ stock หักลด
3. นำค่า Variable ไป update ช่อง Material_diff ได้เลย

แต่..... มันจะมีปัญหาในการ update ครั้งถัดไป เพราะค่าล่าสุดไม่ใช่ Material_diff แต่เป็น Material_qty
เพราะฉะนั้น นำค่าหักลบ ไป update ในช่อง Material_qty เลยจะดีกว่า

#วันหลังขอเป็นCodeไม่เอารูป

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 21:58:08 By : Genesis™
 


 

No. 5



โพสกระทู้ ( 4,706 )
บทความ ( 8 )



สถานะออฟไลน์


พวกที่ชอบโพสต์โค้ดเป็นรูปนี่ผมสงสัยเหลือเกิน
มันง่ายกว่าการก๊อปโค้ดมาแปะเหรอครับ?
กลัวโค้ดจะรั่วไหลโดนขโมยเหรอครับ?

คนเขาจะตอบจะช่วยแก้ปัญหาให้ เขาต้องมานั่งพิมพ์ใหม่
อยากให้เขาช่วยเหลือแต่คนช่วยต้องช่วยทุกอย่างนะ
จะแก้ไขโค้ดอะไร ต้องเขียนใหม่ทั้งหมดแต่เริ่มเลย
แบบนี้มันไม่เห็นแก่ตัวมักง่ายเกินไปเหรอครับ?


ประวัติการแก้ไข
2019-12-06 22:02:41
2019-12-06 22:03:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 22:02:02 By : mr.v
 


 

No. 6



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


index.php
<?php
	ini_set('display_errors', 1);
	error_reporting(~0);

	$serverName = "localhost";
	$userName = "root";
	$userPassword = "1234567890";
	$dbName = "projectx";

	$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);

	$sql = "SELECT * FROM material";

	$query = mysqli_query($conn,$sql);
?>
  <table class="table table-bordered">
  <thead>
    <tr>
    <th scope="col"> เลขวัสดุ</div></th>
    <th scope="col">ชื่อ</div></th>
    <th scope="col">จำนวนคงเหลือ</div></th>
    <th scope="col">จำนวนนับ</div></th>
    <th scope="col">ผลต่าง</div></th>
	  <th scope="col">แก้ไข</div></th>
    </tr>
  </thead>
<?php
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
?>
  <tr>
    <td><?php echo $result["Material_id"];?></div></td>
    <td><?php echo $result["Material_name"];?></td>
    <td><?php echo $result["Material_qty"];?></td>
    <td><?php echo $result["Material_Count"];?></div></td>
    <td><?php echo $result["Material_diff"];?></td>
	<td><a href="edit.php?Material_id=<?php echo $result["Material_id"];?>">Edit</a></td>
  </tr>
<?php



ประวัติการแก้ไข
2019-12-06 22:30:28
2019-12-06 22:30:51
2019-12-06 22:31:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 22:29:44 By : Uhere
 


 

No. 7



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


Edit.php
?>
   <form action="save.php" name="frmAdd" method="post">
  <div class="form-group">
    <label for="Material_id">หมายเลขวัสดุ : </label>
    <input type="hidden" name="Material_id" class="form-control" id="Material_id" value="<?php echo $result["Material_id"];?>"><?php echo $result["Material_id"];?>
  </div>

  <div class="form-group">
    <label for="Material_name">ชื่อวัสดุ : </label>
    <input type="hidden" name="Material_name" class="form-control" id="Material_name" value="<?php echo $result["Material_name"];?>"><?php echo $result["Material_name"];?>
  </div>

  <div class="form-group">
    <label for="Material_qty">จำนวน : </label>
    <input type="hidden" name="Material_qty" class="form-control" id="Material_qty" value="<?php echo $result["Material_qty"];?>"><?php echo $result["Material_qty"];?>
  </div>

  <div class="form-group">
    <label for="Material_Count">จำนวนนับ : </label>
    <input type="text" name="Material_Count" class="form-control" id="Material_Count" value="<?php echo $result["Material_Count"];?>"><?php echo $result["Material_Count"];?>
  </div>
  

  <button type="submit" class="btn btn-primary">Submit</button>
</form>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 22:32:49 By : Uhere
 


 

No. 8



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


Save.php
<?php
	ini_set('display_errors', 1);
	error_reporting(~0);

	$serverName = "localhost";
	$userName = "root";
	$userPassword = "1234567890";
	$dbName = "projectx";

	$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);


	$sql ="UPDATE material SET Material_diff = '".$_POST["Material_Count"]."'-'".$_POST["Material_qty"]."' Where Material_id='".$_POST["Material_id"]."' ";


	$query = mysqli_query($conn,$sql);

	if($query) {
	 echo "Record update successfully";
	}

	mysqli_close($conn);
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 22:33:23 By : Uhere
 


 

No. 9



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : mr.v เมื่อวันที่ 2019-12-06 22:02:02
รายละเอียดของการตอบ ::
ขออภัยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-06 22:33:58 By : Uhere
 


 

No. 10



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : Uhere เมื่อวันที่ 2019-12-06 22:33:23
รายละเอียดของการตอบ ::
ได้เปล่าน่ะ ?? ได้ก็ดี แต่ก็เดี๋วมีปัญหาต่ออีก เพราะ update ครั้งต่อไป stock จะไม่ใช่ค่าปัจจุบันที่อัพเดทก่อนหน้า
ตัด stock มันต้องลด ลด ไม่ใช่ค่าตายตัวอยู่ที่ 100 ตลอด
- Design Database ไม่ตอบโจทย์เลยครับ มีแค่ qty ตัวเดียวก็พอ และ เอาค่าล่าสุดไปหักลบจะได้ค่าปัจจุบัน ทำแบบนี้อย่างที่บอกเดี๋วมีปัญหาต่อแน่นอน

ปล.เรียนรู้ใหม่
- ตาราง เค้าเรียกว่า table "nametable"
- ส่วนที่เป็น Column นั่นเค้าเรียกว่า Fields




ประวัติการแก้ไข
2019-12-07 01:08:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-07 01:03:47 By : Genesis™
 


 

No. 11

Guest


ไอ่หรรม สองฟิวไม่ใช่สองtable 5555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-07 05:09:17 By : Wwwwwin
 


 

No. 12



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


การออกแบบดาต้าเบสในลักษณะนี้ โดยสร้างฟีลด์เก็บผลลัพธ์จากการคำนวณ มันไม่ได้ประโยชน์เท่าที่ควร
เวลาคุณคิวรี่ เพื่อเอาค่าที่ผลลัพธ์ไม่ได้ช้ามากนะครับ และประหยัดพื้นที่การเก็บไปได้ 1 ฟีลด์
อย่าเก็บอะไรที่มันไม่ได้ประโยชน์ในตาราง ใช้การคำนวณเพื่อแสดงผลดีกว่า เป็นเวลาปัจจบันมากกว่า

โครงสร้างการออกแบบงานในลักษณะงาน inventory ที่สำคัญๆ
1 ตารางรายชื่อสินค้า description
ชื่อสินค้า ประเภท หน่วยนับ ยอดยกมา(คงเหลือ) ฯลฯ
2 ตารางสินค้าเข้า tran in
รหัสสินค้า วันที่ จำนวน ราคา ฯลฯ
3 ตารางสินค้าออก tran out
รหัสสินค้า วันที่ จำนวน ราคา ฯลฯ

ส่วนที่เหลือ ใช้การคำนวณเอาทั้งนั้น
และปรับปรุงรายการทุกๆ เดือน/ไตรมาส/ปี ก็ว่ากันไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-07 08:52:42 By : Chaidhanan
 


 

No. 13



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-12-07 08:52:42
รายละเอียดของการตอบ ::
ขอบคุณสำหรับคำแนะนำครับ จะนำไปปรับปรุงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-07 09:18:02 By : Uhere
 


 

No. 14



โพสกระทู้ ( 4,706 )
บทความ ( 8 )



สถานะออฟไลน์


เรื่องการออกแบบตารางมีคนแนะนำเยอะแล้ว
ส่วนเรื่องการอัพเดท 2 คอลัมน์ แบบนี้ก็น่าจะได้ไม่ใช่หรือ?

https://dev.mysql.com/doc/refman/8.0/en/update.html

Code (PHP)
$materialId = (int) (isset($_POST["Material_id"]) ? $_POST["Material_id"] : 0);
$materialCount = (int) (isset($_POST["Material_Count"]) ? $_POST["Material_Count"] : 0);

$sql = 'UPDATE `material` SET `Material_Count` = $materialCount, `Material_diff` = `Material_qty` - `Material_Count` WHERE `id` = $materialId'
// เปลี่ยนไปใช้ escape string, prepare (สำหรับ PDO) เอาเองนะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-07 11:08:08 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : PHP Mysqli สอบถามเรื่องการ Update ผลการคำนวน 2 ตาราง โดยให้แสดงผลลัพธ์อีกตารางหนึ่ง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่