 |
ช่วยตรวจ code ให้นักเรียนหน่อยครับ Insert ค่าซ้ำ....แล้วมัน ERROR ครับ |
|
 |
|
|
 |
 |
|
mssql มันมี ON DUPLICATE KEY UPDATE ด้วยหรือนี่ไม่เคยรู้
|
 |
 |
 |
 |
Date :
2012-05-19 21:16:25 |
By :
Krungsri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าจะให้ง่าย ก็ตั้ง Database ใน Ms SQL ให้เป็น Auto ครับ
จะได้ไม่ซ้ำกัน
|
 |
 |
 |
 |
Date :
2012-05-19 21:43:35 |
By :
Krungsri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เท่าที่ลองดู ถ้าเขียนแบบ จขกท. มันจะไปบวกค่าตัวที่ซ้ำเพิ่มเข้าไปอีกหนึ่ง แต่ข้อมูลอื่นไม่เข้าเบสนะ
|
 |
 |
 |
 |
Date :
2012-05-19 22:36:44 |
By :
บังเอิญผ่านมาเห็น |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เขียนแยก statement ครับ คือให้ SELECT ก่อนว่ามี Record หรือไม่ ถ้ามีก็ให้เข้า UPDATE แต่ถ้าไม่มีให้เข้า INSERT ครับ
|
 |
 |
 |
 |
Date :
2012-05-20 07:35:58 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เขียนให้ดูครับ
Code (PHP)
<?
include 'config/connectnomal.php';
$strSQL = "SELECT * FROM pd_knowledge WHERE pd_cod = '".$_POST["txtpd_cod"]."' ";
$strSQL .="AND pd_catelog = '".$_POST["txtpd_catelog"]."' ";
$objQuery = mssql_query($strSQL);
$numRows = mssql_num_rows($objQuery)
if($numRows == 0)
{
$strSQL = "INSERT INTO pd_knowledge";
$strSQL .="(pd_cod,pd_catelog) ";
$strSQL .="VALUES";
$strSQL .="('".$_POST["txtpd_cod"]."','".$_POST["txtpd_catelog"]."') ON DUPLICATE KEY UPDATE pd_cod = pd_cod+1 ";
$objQuery = mssql_query($strSQL);
}
else
{
$strSQL = "UPDATE pd_knowledge SET pd_cod = pd_cod+1 ";
$strSQL .="WHERE pd_cod = '".$_POST["txtpd_cod"]."' AND pd_catelog = '".$_POST["txtpd_catelog"]."' ";
$objQuery = mssql_query($strSQL);
}
mssql_close($objConnect);
?>
|
 |
 |
 |
 |
Date :
2012-05-20 07:40:21 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันไม่น่าจะมีน่ะครับ 
|
 |
 |
 |
 |
Date :
2012-05-20 08:13:34 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?
include 'config/connectnomal.php';
$strSQL = "SELECT * FROM pd_knowledge WHERE pd_cod = '".$_GET["pd_id"]."' ";
$objQuery = mssql_query($strSQL);
$objResult = mssql_fetch_array($objQuery);
if($objResult["pd_cod"] == null)
{
$strSQL = "INSERT INTO pd_knowledge";
$strSQL .="(pd_cod,pd_catelog) ";
$strSQL .="VALUES";
$strSQL .="('".$_POST["txtpd_cod"]."','".$_POST["txtpd_catelog"]."')";
$objQuery = mssql_query($strSQL);
if($objQuery)
{
echo "<center>Save Done.</center>";
}
else
{
echo "<center>Error Save [".$strSQL."]</center>";
}
}
else
{
$strSQL = "UPDATE pd_knowledge SET pd_cod = pd_cod+1 ";
$strSQL .="WHERE pd_cod = '".$_POST["txtpd_cod"]."' AND pd_catelog = '".$_POST["txtpd_catelog"]."' ";
$objQuery = mssql_query($strSQL);
if($objQuery)
{
echo "<center>Save Done.</center>";
}
else
{
echo "<center>Error Save [".$strSQL."]</center>";
}
}
mssql_close($objConnect);
?>
มันไป INSERT ข้อมูลใหม่นะครับ...พี่
|
 |
 |
 |
 |
Date :
2012-05-20 08:27:12 |
By :
time.toon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใช้ num_rows ตามที่แนะนำครับ
|
 |
 |
 |
 |
Date :
2012-05-20 08:40:04 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|