ช่วยดูให้หน่อยจิ INSERT Mysql DATA ซ้ำซ้อนเกิน+1 ตลอด

เริ่มโดย modoindy, 21 กรกฎาคม 2017, 10:23:01

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

modoindy

 INSERT  Mysql DATA ซ้ำซ้อนเกิน+1 ตลอด ตามรูป ผิดตรงไหนเหอร  :P

$name_act = $_POST['name_act'];
$date_act = $_POST['date_act'];
$category = $_POST['category'];
$detail_act  = $_POST['detail_act'];
$date_in = date("d-m-Y");


$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('$name_act', '$date_act', '$category', '$detail_act', '$date_in')";

/*echo $strSQL;
exit;
*/

$objQuery = mysql_query($strSQL);


if($objQuery)
{
   echo "<table width='346' height='35' border='0' cellpadding='0' cellspacing='0'>
    <tr><td >&nbsp;&nbsp;&nbsp;<center><br><br><img src='images/icon_approve.png' width='16' height='16' />
Slide Save successfully !!<br><br><a href='data_act.php'><strong>หน้าหลัก</strong></a> </span>
      </td>
        </tr>
        </table>";
         
      
}
else
{
   echo "Error Save [".$strSQL."]";
}

?>

sunwu

ผู้ตรวจสอบอาคาร [direct=https://www.checksbuilding.com/] รับตรวจสอบอาคาร[/direct]

TANG22


kumabro

ลองดูครับ  :P

$date_in = date("Y-m-d");

$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('".$name_act."', '".$date_act."', '".$category."', '".$detail_act."', '".$date_in."')";

sputtaro

ผมยังไม่มีคำแนะนำในสิ่งที่ จขกท.ถามนะครับ
แต่มีคำแนะนำอื่นแทน คือ

1. ควรใช้ mysqli แทน mysql
2. ในระหว่างการทดสอบ ควรเปิดการแจ้งเออเรอร์ของระบบ (ค่อยปิดตอนใช้งานจริง)
   และดูที่เออเรอร์นั้นทุกครั้ง ว่าความผิดพลาดเกิดจากอะไร มีคำเตือนอะไรบ้าง
3. ในส่วนที่เกี่ยวกับคำถามของจขกท. มีคำแนะนำดังนี้ครับ
  เช็คดูว่า ตารางนี้มีโครงสร้างยังไง เพราหากเราออกแบบโครงสร้างตารางไว้ดี
  บางครั้ง แค่เพิ่ม Insert Ignore Into ก็แก้ปัญหานี้ได้
  แต่เนื่องจาก ยังไม่ทราบโครงสร้าง และการแจ้งเออเรอร์ ก็เลย ไม่รู้จะแนะนำยังไงดี
4. ลืมไปอีกอย่างหนึ่ง
   เท่าที่ดู echo "Error Save [".$strSQL."]";
   ตรงนี้มันไม่น่าจะเป็นการแจ้งเออเรอร์นะครับ มันเพียงแค่แสดงผลว่า
   $strSQL ส่ง(หรือเขียน) ว่าอะไรบ้างเท่านั้นเอง

chor_th

[direct=https://www.9developer.com]9Developer | รับพัฒนา PHP, Android Cordova, IBM Notes XPages[/direct]
[direct=https://www.dofollow.in.th]SEO เบื้องต้น[/direct]

JumDaiDee

สินค้าออนไลน์ https://www.shoppook.com/product | โปรแกรมออนไลน์ : https://appnon.com

insidecom

อ้างถึงจาก: modoindy ใน 21 กรกฎาคม 2017, 10:23:01
INSERT  Mysql DATA ซ้ำซ้อนเกิน+1 ตลอด ตามรูป ผิดตรงไหนเหอร  :P

$name_act = $_POST['name_act'];
$date_act = $_POST['date_act'];
$category = $_POST['category'];
$detail_act  = $_POST['detail_act'];
$date_in = date("d-m-Y");


$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('$name_act', '$date_act', '$category', '$detail_act', '$date_in')";

/*echo $strSQL;
exit;
*/

$objQuery = mysql_query($strSQL);


if($objQuery)
{
   echo "<table width='346' height='35' border='0' cellpadding='0' cellspacing='0'>
    <tr><td >&nbsp;&nbsp;&nbsp;<center><br><br><img src='images/icon_approve.png' width='16' height='16' />
Slide Save successfully !!<br><br><a href='data_act.php'><strong>หน้าหลัก</strong></a> </span>
      </td>
        </tr>
        </table>";
         
      
}
else
{
   echo "Error Save [".$strSQL."]";
}

?>

ผมดูจาก code mysql แล้วไม่ผิดปกติครับ มันต้องได้เพียง 1 record
ท่านลองเช็คหน้า form ของท่านว่า กดแล้วมันส่งมา 2 รอบหรือเปล่า
ใช้แบบ html5 submit form หรือ jquery submit form ครับ
เพราะผมเคยเจอเคสที่ ลูกค้า กด ดัลเบิ้ลคลิ๊ก แล้วข้อมูลเข้ามา 2 record แบบซ้ำซ้อน 

modoindy

ขอบคุณทุกท่านที่มีน้ำใจงาน ดันช่วย แต่ยังไม่ผ่านเลย   :wanwan022:

Error Save [INSERT INTO act (name_act,date_act,category,detail_act,status_act,date_in) VALUES ('ขอประทานถวายสักการะ เจ้าพระคุณ สมเด็จพระอริยวงศาคตญาณ สมเด็จพระสังฆราช สกลมหาสั', '21 กรกฏาคม 2560', '3', '
ขอประทานถวายสักการะ เจ้าพระคุณ สมเด็จพระอริยวงศาคตญาณ  สมเด็จพระสังฆราช สกลมหาสั

', '0', '2017-07-21')]


:'(Error Save  ยังไม่ผ่าน


<form id="form1" name="form1" method="post" action="data_act_addsave.php" enctype="multipart/form-data" onsubmit="return checkma()">
                   <br />
                 
                               <input name="name_act" type="text" id="name_act" size="80" maxlength="80" style="font-size:18px" >
                             
                         <select name="category" id="category">
                                                <option value='1'>ข่าวประชาสัมพันธ์</option>
                                                       <option
                                                     <option value="5">ข่าวสาระน่ารู้</option>
                                                      </select>
                       </p>
                         <p><script language="JavaScript" src="popcalendar.js" type="text/javascript"></script>
                                 <input id="date_act" class="default_bold" type="text" readonly="true" name="date_act" size="25" value="<? if($pro_time!=""){echo $pro_time;}?>"/>
                             
                     <textarea name="detail_act" cols="100" rows="10" class="ckeditor" id="detail_act"></textarea>
<input name="submit" type="submit" id="submit" style="BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BORDER-LEFT: #999999 1px solid; BORDER-BOTTOM: #999999 1px solid" value="บันทึก"/>
                             
                         
               
               </form></td>



อ้างถึงจาก: insidecom ใน 21 กรกฎาคม 2017, 14:23:54
อ้างถึงจาก: modoindy ใน 21 กรกฎาคม 2017, 10:23:01
INSERT  Mysql DATA ซ้ำซ้อนเกิน 1 ตลอด ตามรูป ผิดตรงไหนเหอร  :P

$name_act = $_POST['name_act'];
$date_act = $_POST['date_act'];
$category = $_POST['category'];
$detail_act  = $_POST['detail_act'];
$date_in = date("d-m-Y");


$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('$name_act', '$date_act', '$category', '$detail_act', '$date_in')";

/*echo $strSQL;
exit;
*/

$objQuery = mysql_query($strSQL);


if($objQuery)
{
   echo "<table width='346' height='35' border='0' cellpadding='0' cellspacing='0'>
   <tr><td >&nbsp;&nbsp;&nbsp;<center><br><br><img src='images/icon_approve.png' width='16' height='16' />
Slide Save successfully !!<br><br><a href='data_act.php'><strong>หน้าหลัก</strong></a> </span>
      </td>
       </tr>
       </table>";
         
      
}
else
{
   echo "Error Save [".$strSQL."]";
}

?>

ผมดูจาก code mysql แล้วไม่ผิดปกติครับ มันต้องได้เพียง 1 record
ท่านลองเช็คหน้า form ของท่านว่า กดแล้วมันส่งมา 2 รอบหรือเปล่า
ใช้แบบ html5 submit form หรือ jquery submit form ครับ
เพราะผมเคยเจอเคสที่ ลูกค้า กด ดัลเบิ้ลคลิ๊ก แล้วข้อมูลเข้ามา 2 record แบบซ้ำซ้อน  

kumabro

ลองเอา error ออกมาดูก่อนได้มั้ยครับ


$objQuery = mysql_query($strSQL) or die(mysql_error());

modoindy

อ้างถึงจาก: kumabro ใน 21 กรกฎาคม 2017, 17:20:27
ลองเอา error ออกมาดูก่อนได้มั้ยครับ


$objQuery = mysql_query($strSQL) or die(mysql_error());



ตามที่แจ้ง สีเขียว Eror งัย
อ้างถึงจาก: modoindy ใน 21 กรกฎาคม 2017, 16:22:44
ขอบคุณทุกท่านที่มีน้ำใจงาน ดันช่วย แต่ยังไม่ผ่านเลย   :wanwan022:

Error Save [INSERT INTO act (name_act,date_act,category,detail_act,status_act,date_in) VALUES ('ขอประทานถวายสักการะ เจ้าพระคุณ สมเด็จพระอริยวงศาคตญาณ สมเด็จพระสังฆราช สกลมหาสั', '21 กรกฏาคม 2560', '3', '
ขอประทานถวายสักการะ เจ้าพระคุณ สมเด็จพระอริยวงศาคตญาณ  สมเด็จพระสังฆราช สกลมหาสั

', '0', '2017-07-21')]


:'(Error Save  ยังไม่ผ่าน


<form id="form1" name="form1" method="post" action="data_act_addsave.php" enctype="multipart/form-data" onsubmit="return checkma()">
                   <br />
                 
                               <input name="name_act" type="text" id="name_act" size="80" maxlength="80" style="font-size:18px" >
                             
                         <select name="category" id="category">
                                                <option value='1'>ข่าวประชาสัมพันธ์</option>
                                                       <option
                                                     <option value="5">ข่าวสาระน่ารู้</option>
                                                      </select>
                       </p>
                         <p><script language="JavaScript" src="popcalendar.js" type="text/javascript"></script>
                                 <input id="date_act" class="default_bold" type="text" readonly="true" name="date_act" size="25" value="<? if($pro_time!=""){echo $pro_time;}?>"/>
                             
                     <textarea name="detail_act" cols="100" rows="10" class="ckeditor" id="detail_act"></textarea>
<input name="submit" type="submit" id="submit" style="BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BORDER-LEFT: #999999 1px solid; BORDER-BOTTOM: #999999 1px solid" value="บันทึก"/>
                             
                         
               
               </form></td>



อ้างถึงจาก: insidecom ใน 21 กรกฎาคม 2017, 14:23:54
อ้างถึงจาก: modoindy ใน 21 กรกฎาคม 2017, 10:23:01
INSERT  Mysql DATA ซ้ำซ้อนเกิน 1 ตลอด ตามรูป ผิดตรงไหนเหอร  :P

$name_act = $_POST['name_act'];
$date_act = $_POST['date_act'];
$category = $_POST['category'];
$detail_act  = $_POST['detail_act'];
$date_in = date("d-m-Y");


$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('$name_act', '$date_act', '$category', '$detail_act', '$date_in')";

/*echo $strSQL;
exit;
*/

$objQuery = mysql_query($strSQL);


if($objQuery)
{
   echo "<table width='346' height='35' border='0' cellpadding='0' cellspacing='0'>
   <tr><td >&nbsp;&nbsp;&nbsp;<center><br><br><img src='images/icon_approve.png' width='16' height='16' />
Slide Save successfully !!<br><br><a href='data_act.php'><strong>หน้าหลัก</strong></a> </span>
      </td>
       </tr>
       </table>";
         
      
}
else
{
   echo "Error Save [".$strSQL."]";
}

?>

ผมดูจาก code mysql แล้วไม่ผิดปกติครับ มันต้องได้เพียง 1 record
ท่านลองเช็คหน้า form ของท่านว่า กดแล้วมันส่งมา 2 รอบหรือเปล่า
ใช้แบบ html5 submit form หรือ jquery submit form ครับ
เพราะผมเคยเจอเคสที่ ลูกค้า กด ดัลเบิ้ลคลิ๊ก แล้วข้อมูลเข้ามา 2 record แบบซ้ำซ้อน  

romance69

ฟิล date_in เป็น type อะไรครับ
ถ้าเป็น date ก็แก้ตรง $date_in = date("d-m-Y"); เป็น $date_in = date("Y-m-d"); ครับ
ขายปลั๊กอิน Wordpress ตรวจหวยออนไลน์ อัปเดตอัตโนมัติ ราคา 2,500 บาท ใส่โค้ด THAISEO10 รับส่วนลด 10%
รับเขียนเว็บไซต์, รับเขียน Theme wordpress, รับเขียน Plugin wordpress

thaisew


Saimok

$name_act = $_POST['name_act'];
$date_act = $_POST['date_act'];
$category = $_POST['category'];
$detail_act  = $_POST['detail_act'];
$date_in = date("d-m-Y");


$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('$name_act', '$date_act', '$category', '$detail_act', '$date_in')";

/*echo $strSQL;
exit;
*/

if(mysql_query($strSQL))  //ตรงที่แก้
{
   echo "<table width='346' height='35' border='0' cellpadding='0' cellspacing='0'>
    <tr><td >&nbsp;&nbsp;&nbsp;<center><br><br><img src='images/icon_approve.png' width='16' height='16' />
Slide Save successfully !!<br><br><a href='data_act.php'><strong>หน้าหลัก</strong></a> </span>
      </td>
        </tr>
        </table>";
         
       
}
else
{
   echo "Error Save [".$strSQL."]";
}

?>


ลองดูนะ
Hello World!

insidecom

ยังไม่ได้ใช่ไหมครับ
เท่าที่ผมดูฝั่งหน้า Form ดูแล้วปกติครับ น่าจะเป็นฝั่ง Mysql มากกว่าครับ
ลองทำตามความเห็นข้างบนครับ ที่ว่าแสดง error
ที่ท่านแสดง error สีเขียว มันบอกได้ไม่ชัดเจนครับ
ต้อง echo mysql_error();  หลังจากที่เราใช้ mysql_query();
จึงจะเห็น error ที่แจ้งมาจาก Mysql ครับ

XpressMusic9

[direct=http://www.thaigamerclub.com]ไทยเกมเมอร์คลับ[/direct]

bigz3105

ต้องดูหน้า form ด้วยครับว่า POST แบบไหนมา หลังจาก POST มีการ reload หรือไม่
เพราะถ้า POST ไปแล้วมีการ reload หน้านั้นซ้ำ มันลง 2 record แน่นอนครับ
รับทำเว็บไซด์ขนาดเล็ก ไปจนถึง ERP
BIRD [SUPHAN] I'm Programmer,I have no life. colorful life.
web & mobile app developer. รับทำเว็บไซด์ & mobile app.
รับทำระบบดึงสินค้า & จัดการ shipping จากจีน
[direct=https://www.torfunbrand.com]ของเล่นเด็ก[/direct][direct=https://www.saledidi.com]ของเล่นเด็ก ราคาถูก[/direct]

narincr

$name_act = $_POST['name_act'];
$date_act = $_POST['date_act'];
$category = $_POST['category'];
$detail_act  = $_POST['detail_act'];
$date_in = date("d-m-Y");


$strSQL = "INSERT INTO act (name_act,date_act,category,detail_act,date_in) VALUES ('$name_act', '$date_act', '$category', '$detail_act', '$date_in')";

/*echo $strSQL;
exit;
*/

$objQuery = mysql_query($strSQL);


if($objQuery)
{
   echo "<table width='346' height='35' border='0' cellpadding='0' cellspacing='0'>
    <tr><td >&nbsp;&nbsp;&nbsp;<center><br><br><img src='images/icon_approve.png' width='16' height='16' />
Slide Save successfully !!<br><br><a href='data_act.php'><strong>หน้าหลัก</strong></a> </span>
      </td>
        </tr>
        </table>";
         
       
}
else
{
   echo "Error Save [".$strSQL."]";
}


ผมกลับคิดว่าเป็นตรงนี้ครับ
$objQuery = mysql_query($strSQL); // ตรงนี้จะรันส่งไปแล้ว 1 ครั้ง

แล้วมา if($objQuery) ตรงนี้เพิ่มอีก
ตามที่เข้าใจและเห็นในแว๊บแรกนะครับ

และอีกข้อนึงคือ กดปุ่ม ดับเบิ้ลคลิก แล้วส่งมา 2 ครั้งครับ
รับทำเว็บไซท์ แก้ไข Script CMS  โปรเจ็คนักศึกษา Script PHP ทุกชนิด รับงานเร่ง งานด่วน รับภายใน 3-5 วัน โทรหรือ Line มาคุยกันได้ครับ
DO-PHP.COM , DO-PHP.COM , DO-PHP.COM
Mobile : 092-1064587 , Line : narin.php Email : narin.cr@gmail.com

nscyber

อันดับแรกผมงงเจ้าของกระทู้ 555+ มาแนวแบบไม่เรียงคำถามอะไรให้ดีเลย

ถ้าที่ผมเข้าใจคือมัน insert ซ้ำใช่ไหมครับถ้าใช่แนะนำก่อนถึงบรรทัด mysql_query ให้ select ข้อมูลในฐานข้อมูลมาตรวจก่อนเช่นกรณีนี้คือ name_act ซึ่งมันจะไม่ซ้ำกัน ให้ทำการเขียนสคริปค้นหาข้อมูลก่อนว่ามี หัวข้อเดียวอยู่ในฐานข้อมูลแล้วไหม ถ้ามีแล้วก็ไม่ต้องเพิ่ม ถ้าไม่มีก็ทำงานต่อ

ปล.กรณีนี้จะกันเม้าส์เบิ้ลได้ครับ แล้วไม่เกิดข้อมูลซ้ำ เพราะเราดักไว้แล้ว