สอบถามวิธีการเขียน สลับข้อมูลขึ้นลง ของ phpBB
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP VIP Members
- โพสต์: 3751
- ลงทะเบียนเมื่อ: 06/06/2022 9:43 am
สอบถามวิธีการเขียน สลับข้อมูลขึ้นลง ของ phpBB
อยากทราบว่าจะสลับขึ้นลงข้อมูลตามลูกศร สีฟ้าอย่างไรครับ
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41254
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: สอบถามวิธีการเขียน สลับข้อมูลขึ้นลง ของ phpBB
ถ้าทำความเข้าใจ ต้องเริ่มจากออกแบบตาราง
ถ้าเรียงธรรมดา สลับ Order ทำธรรมดา ใช้ ordering Field เดียวได้ แต่แบบของ phpBB
จะมี Parent ด้วยจะใช้หลักการ left, right เข้ามาช่วย หรือนึกภาพเป็น ค่าบนล่างตามตัวอย่าง
การสลับตำแหน่ง โดยอ้างอิงกับค่าปัจจุบันนแล้ว เอามาคำนวณใหม่ เสร็จแล้วอัพเดดกลับด้วยค่าทางซ้าย และ ค่าทางขวาของแต่ละ rows ข้องกลับลงไปในฐานข้อมูล
ตัวอย่างโค้ดเพื่อการศึกษา
Note ใน phpBB จะมีโค้ดช่วยในการจัดเรียงอยู่แล้ว แกะโค้ดจากใน core ของมันได้
ถ้าเรียงธรรมดา สลับ Order ทำธรรมดา ใช้ ordering Field เดียวได้ แต่แบบของ phpBB
จะมี Parent ด้วยจะใช้หลักการ left, right เข้ามาช่วย หรือนึกภาพเป็น ค่าบนล่างตามตัวอย่าง
การสลับตำแหน่ง โดยอ้างอิงกับค่าปัจจุบันนแล้ว เอามาคำนวณใหม่ เสร็จแล้วอัพเดดกลับด้วยค่าทางซ้าย และ ค่าทางขวาของแต่ละ rows ข้องกลับลงไปในฐานข้อมูล
ตัวอย่างโค้ดเพื่อการศึกษา
โค้ด: เลือกทั้งหมด
<?php
// Connect to database
$dbHost = 'localhost';
$dbName = 'example';
$dbUser = 'username';
$dbPass = 'password';
$dbConn = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass);
// Define IDs of categories to switch
$category1Id = 5;
$category2Id = 6;
// Retrieve category data from database
$sql = "SELECT id, name, parent_id, lft, rgt FROM categories";
$stmt = $dbConn->prepare($sql);
$stmt->execute();
$categories = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Find categories to switch
$category1 = null;
$category2 = null;
foreach ($categories as $category) {
if ($category['id'] == $category1Id) {
$category1 = $category;
} elseif ($category['id'] == $category2Id) {
$category2 = $category;
}
if ($category1 && $category2) {
break;
}
}
// Make sure categories have the same parent
if ($category1['parent_id'] != $category2['parent_id']) {
die('Categories must have the same parent');
}
// Swap lft and rgt values for categories
$temp = $category1['lft'];
$category1['lft'] = $category2['lft'];
$category2['lft'] = $temp;
$temp = $category1['rgt'];
$category1['rgt'] = $category2['rgt'];
$category2['rgt'] = $temp;
// Update database with new lft and rgt values for categories
$sql = "UPDATE categories SET lft = ?, rgt = ? WHERE id = ?";
$stmt = $dbConn->prepare($sql);
$stmt->execute(array($category1['lft'], $category1['rgt'], $category1['id']));
$stmt->execute(array($category2['lft'], $category2['rgt'], $category2['id']));
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ [Extension phpBB3.1.1] phpBB Media Embed PlugIn ปลั๊กอิน phpBB แนบสื่อ
โดย จันนุสรณ์ ดีแก่ » 25/01/2019 12:18 pm » ใน phpBB 3.1 Extension Review - 1 ตอบกลับ
- 9268 แสดง
-
โพสต์ล่าสุด โดย Ittichai_chupol
25/01/2019 7:18 pm
-
-
-
โพสต์ใหม่ วิธีแก้ปัญหา ปัญหา string conversion [phpBB Debug] PHP Notice: ใน phpBB 3
โดย mindphp » 15/10/2018 12:27 pm » ใน Programming - PHP - 1 ตอบกลับ
- 6169 แสดง
-
โพสต์ล่าสุด โดย mindphp
15/10/2018 12:28 pm
-
-
-
โพสต์ใหม่ phpBB Debug ตอนติดตั้ง Extension /phpbb/db/tools.php on line 1450:
โดย thatsawan » 28/03/2015 3:14 pm » ใน Programming - PHP - 0 ตอบกลับ
- 4612 แสดง
-
โพสต์ล่าสุด โดย thatsawan
28/03/2015 3:14 pm
-
-
- 0 ตอบกลับ
- 4587 แสดง
-
โพสต์ล่าสุด โดย mindphp
18/04/2015 4:49 am
-
-
โพสต์ใหม่ Fatal error: Call to undefined method phpbb\profilefields\manager::enable_profilefields() phpBB 3.1.6
โดย thatsawan » 24/10/2015 12:07 am » ใน Programming - PHP - 0 ตอบกลับ
- 2952 แสดง
-
โพสต์ล่าสุด โดย thatsawan
24/10/2015 12:07 am
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 8