ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเขียน php ยังไงครับ ให้แสดง ID ล่าสุดได้
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เขียน php ยังไงครับ ให้แสดง ID ล่าสุดได้  (อ่าน 4478 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« เมื่อ: 27 สิงหาคม 2013, 17:20:08 »

ในตารางมีฟิลด์ id ซึ่งเป็น Primary Key และ Auto Increatment ด้วย
ตัวอย่างตอนนี้มี id = 1 , 2 ,3,5,7
ทั้งหมดอยู่ 5 แถม จะสังเกตเห็นว่า แถวที่ 4 และ 6ถูกลบไปก่อนหน้านี้

ต้องการเขียน php ให้แสดง id ล่าสุดครับ ไม่ทราบ่วาต้องเขียนอย่างไร
ซึ่งถ้าเขียนได้และรัน จะต้องแสดงเลข 7 ออกมา ซึ่งหมายความว่า ตอนนี้ล่าสุด id เท่ากับ 7

รบกวนทีนะครับ
 wanwan017
บันทึกการเข้า

เหนื่อย..
kuraseng
ก๊วนเสียว
*

พลังน้ำใจ: 22
ออฟไลน์ ออฟไลน์

กระทู้: 257



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 27 สิงหาคม 2013, 17:24:58 »

SELECT * FROM tablename ORDER BY id DESC LIMIT 1
บันทึกการเข้า
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #2 เมื่อ: 27 สิงหาคม 2013, 17:28:11 »

เอ่อ ไม่ใช่ครับ หรือผมอธิบายผิด อิอิ ให้แสดงข้อมูลใน id อ่ะ คือตัวเลขออกมาเลย
บันทึกการเข้า

เหนื่อย..
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #3 เมื่อ: 27 สิงหาคม 2013, 17:30:12 »

เอ่อ ไม่ใช่ครับ หรือผมอธิบายผิด อิอิ ให้แสดงข้อมูลใน id อ่ะ คือตัวเลขออกมาเลย

คืออยากรู้ว่า table นี้ id ล่าสุดคือ id อะไร หรือว่า id ต่อไปเป็น id อะไรอ่ะครับ
บันทึกการเข้า

เหนื่อย..
Freedomlover
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 207
ออฟไลน์ ออฟไลน์

กระทู้: 2,097



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 27 สิงหาคม 2013, 17:39:32 »

SELECT * FROM tablename ORDER BY id DESC LIMIT 1

แบบนี้ก็ได้ครับ  แต่เปลี่ยนจาก *  ให้เหลือแค่ field ของ id ก็พอครับ  ได้ id ล่าสุดเหมือนกัน

หรือ

SELECT MAX(ID) AS HighID FROM tablename;



ถ้าเป็น id ล่าสุดที่ insert เข้าไป  ใช้ mysql_insert_id()  ไว้หลังจากที่ insert
บันทึกการเข้า

โฮสติ้ง คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
SSD VPS แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213
ghostbehead
สมุนแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 614



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 27 สิงหาคม 2013, 18:14:46 »

SELECT * FROM tablename ORDER BY id DESC LIMIT 1

แบบนี้ก็ได้ครับ  แต่เปลี่ยนจาก *  ให้เหลือแค่ field ของ id ก็พอครับ  ได้ id ล่าสุดเหมือนกัน

หรือ

SELECT MAX(ID) AS HighID FROM tablename;



ถ้าเป็น id ล่าสุดที่ insert เข้าไป  ใช้ mysql_insert_id()  ไว้หลังจากที่ insert



มาสนับสนุน ความคิดเห็นนี้ครับ Cheesy
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #6 เมื่อ: 27 สิงหาคม 2013, 19:59:07 »

คืออย่างนี้ครับ ตอนนี้ผมมีรายชื่อสมาชิกประมาณ 4000 คน ซึ่งผมต้องการเขียน code ตัวนึง ซึ่งแสดงตัวเลข id ล่าสุด จาก 4000 เป็น 4001

ให้ 4001 แสดงออกมาหน้าจอเลยอ่ะครับ

เพราะบางทีปัญหามันอาจจะเป็น 4001 , 4002 ,4003 อาจถูกลบไป การแสดงตาม increatment ล่าสุด อาจจะเป็นลำดับที่ 4004 อ่ะครับ

ผมไม่แน่ใจว่าจะอธิบายถูกเปล่าครับ

สรุปก็คือผมอยากทราบว่า ลำดับต่อไปของ id ที่จะถูก insert ต่อไปได้ id อะไร จะเขียนยังไงครับ
บันทึกการเข้า

เหนื่อย..
khunzz
ก๊วนเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 222



ดูรายละเอียด
« ตอบ #7 เมื่อ: 27 สิงหาคม 2013, 20:21:20 »

 wanwan001
บันทึกการเข้า

077023
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 468



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 27 สิงหาคม 2013, 20:37:52 »

Insert ไปก่อนเลย แล้วใช้ mysql_insert_id() เช็คน่าจะได้นะครับ ไม่ต้องกลัวซ้ำกันด้วย
บันทึกการเข้า

Preorder ญี่ปุ่น
077023
Preorderสิ้นค้าญี่ปุ่น
[img=http://www.jangpic.com/test_count_thaiseo.php/[/img]
Freedomlover
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 207
ออฟไลน์ ออฟไลน์

กระทู้: 2,097



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 27 สิงหาคม 2013, 21:00:24 »

คืออย่างนี้ครับ ตอนนี้ผมมีรายชื่อสมาชิกประมาณ 4000 คน ซึ่งผมต้องการเขียน code ตัวนึง ซึ่งแสดงตัวเลข id ล่าสุด จาก 4000 เป็น 4001

ให้ 4001 แสดงออกมาหน้าจอเลยอ่ะครับ

เพราะบางทีปัญหามันอาจจะเป็น 4001 , 4002 ,4003 อาจถูกลบไป การแสดงตาม increatment ล่าสุด อาจจะเป็นลำดับที่ 4004 อ่ะครับ

ผมไม่แน่ใจว่าจะอธิบายถูกเปล่าครับ

สรุปก็คือผมอยากทราบว่า ลำดับต่อไปของ id ที่จะถูก insert ต่อไปได้ id อะไร จะเขียนยังไงครับ

ก็ตามตัวอย่างด้านบนนั้นแหละครับ  ลองเอาไปเขียนดูครับ
บันทึกการเข้า

โฮสติ้ง คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
SSD VPS แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #10 เมื่อ: 28 สิงหาคม 2013, 00:44:08 »

ตอนนี้เขียนไ้ด้อย่างนี้แล้วครับ

$sql = "SELECT MAX(id) AS HighID FROM table_name";
  $id_query = mysql_query($sql);
  $result = mysql_fetch_array($id_query);
  $next_id = (int)$result['Auto_increment'];
  echo "$result[HighID]";

ซึ่งจะแสดง ตัวเลขของ id ตัวสุดท้ายขึ้นมา

แต่ท่านพอทราบบ้างครับว่า ค่า id ถัดไปจะเป็นค่าเท่าไหร่ พอมีแนวการเขียนแสดงมั้ยครับ

ปล.บางทีค่าถัดไป อาจจะไม่เรียงจากของเดิมก็ได้ เนื่องจากถูกลบไปก่อนหน้านี้แล้ว

บันทึกการเข้า

เหนื่อย..
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #11 เมื่อ: 28 สิงหาคม 2013, 08:15:36 »

ตามล่าหาผู้ช่วยต่อไป  wanwan020 wanwan020
บันทึกการเข้า

เหนื่อย..
mrbov
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 205
ออฟไลน์ ออฟไลน์

กระทู้: 2,163



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 28 สิงหาคม 2013, 08:36:01 »

น่าจะแยก id record กับ id member คนละ field กันเลยดีกว่าครับ จะได้ไม่ยุ่งยาก ถ้าใช้รวมกันปัญหามันตามมาเยอะครับ เวลาเกิดการลบ เรคคอร์ด
id record  >>  auto increment
id member  >>  ลำดับสมาชิก
บันทึกการเข้า

Power Monitoring System
แสงตะวันธนากิจ
รับติดตั้งโซล่าเซลล์โคราช
โซล่าเซลล์โคราช
dragons_first
สมุนแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 953



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 28 สิงหาคม 2013, 08:39:52 »

$sql = "select max(id) from table....."
$dbquery = mysql_query($sql);
$array = mysql_fetch_array($dbquery);
$newid = $array[id]+1;
บันทึกการเข้า

รับทำเว็บไซต์ ตามขอบเขตของลูกค้าราคาเบาๆ

รับแก้สคริปท์ เพิ่มระบบ เปลี่ยนแปลงเลเอาท์เว็บไซต์ จัด cssใหม่ แก้การแสดงผลผิดเพี้ยน
ท่านจะได้รับการบริการที่เป็นกันเอง ราคาไม่แพง ต่อรองได้(แต่ไม่น่าเกลียด) คุยกันฉันมิตร นะฮ๊าฟฟฟฟฟ
หน้า: [1]   ขึ้นบน
พิมพ์