Page 1 of 1

ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 09/01/2011 10:13 pm
by boardza
ปัญหาครับ ปัญหา จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Code: Select all

<?php
    $dbname = count;
    $dbuser = sa;
    $dbpass = 12345;
    $con = mssql_connect("127.0.0.1","$dbuser","$dbpass");
    if(!$con)
    {
        die('ติดต่อฐานข้อมูลไม่ได้ เนื่องจาก: ' . mssql_error());
    }
    
    $id = trim($_POST['id']);
    $pass = trim($_POST['pass']);
    $pass2 = trim($_POST['pass2']);
    $mail = trim($_POST['mail']);
    $sex = trim($_POST['sex']);
    
    if(!$id || !$pass || !$pass2 || !$mail || !$sex)
        {
            echo "กรุณากรอกข้อมูลให้ครบทุกช่อง";
        }
    
    if($pass == $pass2)
        {
    mssql_select_db($dbname);
    $insert = "INSERT INTO TBL_ACCOUNT (FLD_ID, FLD_PASSWORD, FLD_MAIL, FLD_SEX)VALUES ('$id','$pass','$mail','$sex')";
    mssql_query($insert);
        }

    mssql_close($con);
    
?>
มันเป็นแบบนี้ครับ

Warning: mssql_query() [function.mssql-query]: message: Violation of PRIMARY KEY constraint 'PK_TBL_ACCOUT'. Cannot insert duplicate key in object 'dbo.TBL_ACCOUNT'. (severity 14) in C:\xampp\htdocs\Wab\Regieter.php on line 132

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\Wab\Regieter.php on line 132


คำถาม คับ

คือว่าผมทำฟอร์มสมัครข้างต้นแล้ว อยากจะทำการตรวจสอบว่า ID ที่สมัครมีซ้ำกันในตารางหรือป่าว ถ้ามีก็จะไม่ลงในฐานข้อมูล อยากให้ช่วยแนะนำหน่อยครับ ^^

Re: ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 10/01/2011 8:47 am
by mindphp
Error มันบอกว่า Key ซ้ำกันไม่สามารถ insert ได้ครับ
ส่วนถ้าจะเช็คว่า Key ซ้ำหรือ ไม่ก็ select ดูก่อน ครับ ด้วย เงื่อนไข key เท่ากับ ค่าที่เราจะ insert เข้าไปหรือเปล่า

Re: ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 10/01/2011 9:41 am
by boardza
ค่าที่รับมาเข้า ฐานข้อมูล ครบทุกอย่าง เลย นะ ครับ

Re: ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 10/01/2011 9:43 am
by mindphp
ค่าที่รับเข้ามา ซ้ำกับข้อมูลเก่าที่มีอยู่ ก่อนในตารางนั้นครับ

Re: ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 10/01/2011 4:24 pm
by boardza
ตอนนี้ผมไปแก้ ใน SQL2005 ไม่ต้องให้ เป็น PRIMARY KEY เพื่อป้องกันไม่ให้มันแสดง

โค้ดแบบนั้นอีก

ตอนนี้ก็เหลือแต่ โค้ด PHP ในการตวรจสอบ

Re: ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 11/01/2011 12:10 am
by mindphp
boardza wrote:ตอนนี้ผมไปแก้ ใน SQL2005 ไม่ต้องให้ เป็น PRIMARY KEY เพื่อป้องกันไม่ให้มันแสดง

โค้ดแบบนั้นอีก

ตอนนี้ก็เหลือแต่ โค้ด PHP ในการตวรจสอบ
ควรจะมีไว้นะครับ ถ้า table นั้นไม่ต้องการค่า ซ้ำ
เขียน query ประมาณนี้
SQL

Code: Select all

select field from tb where key='name'
เพื่อเช็คว่ามีค่า ใน field key หรือเปล่า
และใช้ mssql_num_rows เอาครับว่ามีค่ามาหรือเปล่า ถ้ามีก็แสดงว่ามีข้อมูลอยู่แล้ว
ตัวอย่างโค้ด

Code: Select all

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('host', 'sa', 'pw');
mssql_select_db('php');

// Select all our records from a table
$re= mssql_query('SELECT * FROM table where username='php' ');

echo 'Total records in database: ' . mssql_num_rows($re);

// Clean up
mssql_free_result($re);
?>

Re: ปัญหา กับคำถาม จะถามหน่อยคับ mssql ฐานข้่ิอมูล

Posted: 11/01/2011 11:04 am
by boardza
ตรง 'php' ของทั้งสองอัน - - หมายถึงอะไรครับ