ช่วยตรวจ 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
Load balance : Server 00