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,037

HOME > PHP > PHP Forum > สอบถามเรื่องการเช็คค่าซ้ำก่อน insert และ update sql ครับ



 

สอบถามเรื่องการเช็คค่าซ้ำก่อน insert และ update sql ครับ

 



Topic : 131610



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



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




ต้องการให้เช็คค่า ฟิลล์ id_bill ก่อน ว่ามีรึยัง ถ้าไม่มีให้บันทึก ถ้ามีให้ update
แต่ว่า มันไม่ยอมเช็คครับ มันเพิ่มต่อไปอย่างเดียวเลย
ผิดตรงไหน แนะนำทีครับ

x

form ที่ส่งไป
Code (PHP)
<form name ="frm" action="sum.php?id=<?php echo $result["id"]?>" method="post" >	

<input type="submit" name="submit"  value="พิมพ์ใบเสร็จแบบ A4" style="width: 120px">

<input type="text" name="member_id" value="<?=$_SESSION["login_true"]?>" />
<input type="text" name="id_bill" value="<?php echo $result["id"]?>">
<input type="text" name="total" value="<?php echo ("$sum");?>">
<input type="text" name="date" value="<?php echo ($result["d_add"])?>">

</form>	


form ที่รับ
Code (PHP)
<?php 
include("check_user.php");

$strSQL = "SELECT  id_bill , count(id_bill)  count from money_all  WHERE member_id = '$_SESSION[login_true]'";
$objQuery = $conn->query($strSQL) or die( $conn->error . "<br>$sql" );
$ro = $objQuery->fetch_array();

$x = $ro['id_bill'];
//echo $x;


$id_bill = $_POST['id_bill'];
$member_id = $_POST['member_id'];
$total = $_POST['total'];
$submit = $_POST['submit'];
$date = date("Y-m-d",  time());

print_r($_POST);

if ('id_bill' != $x) {
	$sql ="INSERT into money_all (id_bill , member_id , date , total)
VALUES ('$id_bill' , '$member_id' , '$date' , '$total')";
$query = $conn->query($sql) or die($conn->error . "<br>$sql");

} else   {
	$strSQL = "UPDATE money_all SET		
		WHERE member_id='$_SESSION[login_true]' AND id_bill = '".$_POST["id_bill"]."' ";
$query = $conn->query($strSQL) or die($conn->error . "<br>$sql");

	exit();
}




?>






Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-07-24 21:44:56 By : lhumdin View : 3144 Reply : 8
 

 

No. 1



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



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


Code (PHP)
//รับค่าจาก Form //
<input type="hidden" value="<?php echo $ro['id_bill'];?>" name="id_bill_input">
//รับค่าจาก Form //

$strSQL = "SELECT  id_bill , count(id_bill)  count from money_all  WHERE member_id = '$_SESSION[login_true]'";
$objQuery = $conn->query($strSQL) or die( $conn->error . "<br>$sql" );
$ro = $objQuery->fetch_array();

$id_bill = $_POST['id_bill'];
$member_id = $_POST['member_id'];
$total = $_POST['total'];
$submit = $_POST['submit'];
$date = date("Y-m-d",  time());
$id_bill_input= $_POST['id_bill_input'];

if($ro['id_bill'] != $id_bill_input){ ///<----เปลี่ยนรับค่าฟิลด์จาก select มาก่อนเพื่อเช็คว่ามีค่าว่างหรือเปล่า ถ้าไม่มีให้ทำการบันทึกข้อมูลลงไปครับ $id_bill_input 
	$sql ="INSERT into money_all (id_bill , member_id , date , total)
VALUES ('$id_bill' , '$member_id' , '$date' , '$total')";
$query = $conn->query($sql) or die($conn->error . "<br>$sql");
}









ประวัติการแก้ไข
2018-07-24 22:25:19
2018-07-24 22:25:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-24 22:21:38 By : menphurk
 


 

No. 2



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


ผมไม่แน่ใจว่าใช้ mysql เวอร์ชั่นใหน

ถ้าใช้รุ่นใหม่ๆ ใช้คำสั่ง REPLACE INTO ก็ได้นะครับ

http://www.genstyles.com/tips-33.html
https://dev.mysql.com/doc/refman/8.0/en/replace.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 06:19:18 By : deawx
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : menphurk เมื่อวันที่ 2018-07-24 22:21:38
รายละเอียดของการตอบ ::
มี error แจ้งว่า Notice: Undefined index: id_bill_input in ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 07:32:46 By : lhumdin
 


 

No. 4



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



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

แนวทางการแก้ Bugs (PHP)
1. check code select ถูกไหม?
$strSQL = "SELECT  id_bill , count(id_bill)  count from money_all  WHERE member_id = '$_SESSION[login_true]'";
---------------
$strSQL = "SELECT  id_bill , count(id_bill) [font=Verdana] as  count_bill[/font] from money_all  WHERE member_id = '$_SESSION[login_true]'";

2. check $_GET["id"] ; มาไม่? 
<form name ="frm" action="[font=Verdana]sum.php?id=<?php echo $result["id"]?>[/font]" method="post" > 

3. check ค่า IF ถูกไม่ที่เอามาเปรียบเทียบ
if ('id_bill' != $x){


}
----------------
or num_row
if($x >= 0 )
{
echo "do something";
}else{
echo "do something";
}







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 08:33:15 By : Hararock
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : Hararock เมื่อวันที่ 2018-07-25 08:33:15
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......



Code (PHP)
<?php 
include("check_user.php");



$id_bill = $_POST['id_bill'];
$member_id = $_POST['member_id'];
$total = $_POST['total'];
$submit = $_POST['submit'];
$date = date("Y-m-d",  time());

print_r($_POST);

$sql = "SELECT  * FROM money_all ";
$query = mysqli_query($conn,$sql) or die ("Error Query [".$sql."]");
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))  {
$x = $result["id_bill"];
}

if (($id_bill != $x)) {
	$sql ="INSERT into money_all (id_bill , member_id , date , total)
VALUES ('$id_bill' , '$member_id' , '$date' , '$total')";
$query = $conn->query($sql) or die($conn->error . "<br>$sql");

} else   {
	$sql = "UPDATE money_all SET		
		WHERE member_id='$_SESSION[login_true]' AND id_bill = '".$_POST["id_bill"]."' ";
$query = $conn->query($sql) or die($conn->error . "<br>$sql");

	exit();
}




?>




จากโค้ดด้านบนผมทำแล้วมี error แบบนี้ครับ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
Code (PHP)
Array ( [submit] => พิมพ์ใบเสร็จแบบ A4 [member_id] => admin [id_bill] => 371 [total] => 2020 [date] => 2018-07-25 ) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE member_id='admin' AND id_bill = '371'' at line 2
UPDATE money_all SET	WHERE member_id='admin' AND id_bill = '371

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 08:58:52 By : lhumdin
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : lhumdin เมื่อวันที่ 2018-07-25 08:58:52
รายละเอียดของการตอบ ::
Code (PHP)
$sql = "UPDATE money_all SET       
27.
WHERE member_id='$_SESSION[login_true]' AND id_bill = '".$_POST["id_bill"]."' ";
------------
Error 100%
----
* Format update 
UPDATE table SET fields1 = 'Values1' , fields2 = 'Values1' ,.....fieldsn =  'Valuesn'
WHERE  fieldsID = 'ValuesID'

สอนหลักการ (PHP)
// select check duplicate แบบบ้านๆ ไม่เทพ
 $sql = mysqli_query($conn,"select * form table WHERE Name = '$_POST["Name"]'") ;
$num = mysqli_num_row($sql);
if($num >= 0)
{
echo "ค่าซ้ำ";
}else{
echo "do insert";
echo "do Update";
echo "do anything in your system";
}


แต่ถ้าออกแบบระบบมาผิดๆ ทำให้ Codding ยากชิบหาย แก้ไขก็ยาก update ก็ยาก จะ Count แล้ว update หรือ Sum ออกมาจะยากหมดเลย

อยากเทพขื้น ไปศืกษาแนวคิด การเขียน Code แบบ Hard Core เช่น Code เดี่ยวมีทั้ง SELECT,mysqli_num_row,insert,delete,update,การใช้ if if else else และ เอา Formation การไหลของ Process มาปรับเปลี่ยนในงานของตัวเอง สู้ๆครับ













ประวัติการแก้ไข
2018-07-25 14:15:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 14:11:58 By : Hararock
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : lhumdin เมื่อวันที่ 2018-07-25 08:58:52
รายละเอียดของการตอบ ::
systax errro ครับ ลอง echo $sql แล้วไปรันใน phpmyadmin ดู นะ ก็น่าจะเจอ จุดที่ต้องแก้ละ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 18:31:48 By : DK
 


 

No. 8



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



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


ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 18:37:11 By : lhumdin
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการเช็คค่าซ้ำก่อน insert และ update sql ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่