สอบถาม sql การ insert ทีละครั้ง แล้วเพิ่มค่าไปเรื่อยๆ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถาม sql การ insert ทีละครั้ง แล้วเพิ่มค่าไปเรื่อยๆ

สอบถาม sql การ insert ทีละครั้ง แล้วเพิ่มค่าไปเรื่อยๆ
คือผมต้องการให้ เหมือนเวลากดปุ่ม แล้วมัน insert ตัวเลขแล้วให้มัน + ค่าไปเรื่อยๆ

เช่น กดปุ่มครั้งแรก insert เลข 1
กดปุ่มครั้งที่ 2 insert เลข 2
กดปุ่มครั้งที่ 3  insert เลข 3 

กดแล้วเลขเพิ่มไปเรื่อยๆตามจำนวนครั้งที่เรากด

ผมเขียนแบบนี้มัน ได้ 1 ตลอด ผมต้องเขียนยังไหรอครับ "insert into cards(number) values(1+number)"


OPeTero 203.158.179.xxx 16-01-2016 16:53:16

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ถ้าเป็น primary key ปกติจะกำหนดเป็น increment ค่าจะเพิ่มอัตโนมัติ
ส่วนถ้าเป็นฟิลด์อื่่น สำหรับการ insert น่าจะต้องคิวรี่ค่าเดิมมาก่อน
แล้วเอามา +1 แล้วค่อยทำการ insert 
ส่วนถ้ากรณีอัพเดท ก็จะใช้โค้ดประมาณนี้
UPDATE mytable   SET data = data + 1 


ninenik 180.183.110.xxx 18-01-2016
 ความคิดเห็นที่ 2
ถ้าเป็น primary key ปกติจะกำหนดเป็น increment ค่าจะเพิ่มอัตโนมัติ
ส่วนถ้าเป็นฟิลด์อื่่น สำหรับการ insert น่าจะต้องคิวรี่ค่าเดิมมาก่อน
แล้วเอามา +1 แล้วค่อยทำการ insert 

ใช่ครับต้องการนำมาคิวรี่ก่อนแล้วเอาค่าล่าสุดมา +1 ผมต้องเขียนลักษณะไหนยังไงหรอครับ พอดีผมเขียนไม่ถูกนะครับ


oPeTero 202.6.107.xxx 18-01-2016 10:45
 ความคิดเห็นที่ 3
<?php
      $sql = "SELECT MAX(number) AS maxid FROM cards"; // query อ่านค่า id สูงสุด
      $res = mysql_query($sql); // ทำคำสั่ง
      $ret = mysql_fetch_assoc($res); // อ่านค่า
      $last_id = $ret['maxid']; // คืนค่า id ที่ insert สูงสุด
 //$test = ['maxid+1'];
 echo "$last_id";
 //echo "$test";
 
$nrow=mysql_num_rows($res);
if($nrow>0){
$test = ($last_id+1);
$str = "insert into cards(number) values('$test')";
$insert=mysql_query($str)or die("Not insert");
if($insert){
echo "ok";
}
}
 ?>

ถ้าผมเขียนในลักษณะอย่างนี้ถูกไหมครับ พอดีลองเขียนมา

 



oPeTero 202.6.107.xxx 18-01-2016 11:30
 ความคิดเห็นที่ 4
น่าจะได้เหมือนกัน
หรือประมาณนี้

$maxid = @mysql_result(@mysql_query("
SELECT MAX(number) AS maxid FROM cards
"),0,0);
$maxid=$maxid+1;
$str="
INSERT INTO cards(number) VALUES ($maxid)
";
$insert = @mysql_query($str)or die("Not insert");
if($insert){
echo "ok";
}


ninenik 180.183.110.xxx 18-01-2016
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ