bonparadorn โพสต์ 2011-4-29 23:31:52

เพิ่มเลขจำนวนคนดูตามต้องการ

update`cdb_threads` SET `views` = `views` + '400' WHERE `views` > '150'400 คือจำนวนที่จะ + เพิ่มเข้าไป เช่นหากมี200ก็จะเป็น600
150 คือบวกเพิ่มเฉพาะโพสที่มีจำนวนคนดูมากกว่า150
cdb_threads ชื่อตาราง discuz x... เปลี่ยนให้ตรงใช้ได้ทุกเวอร์ชั่น
ทำแบล็คอัพก่อน
ใส่ที่ cp/เครื่องมือ/ฐานข้อมูล/runquery
และจิ้มปุ่มขอบคุณ+คะแนน

pilinabee1 โพสต์ 2011-9-21 09:53:22

ขอบคุณค่ะ
ท่าทางทำยากจังแต่นู๋ใช้x2sm953dz

bonparadorn โพสต์ 2011-5-30 12:59:30

แก้ไขครั้งสุดท้ายโดย bonparadorn เมื่อ 2011-5-30 13:54

เปลี่ยนไอพีที่โพสทั้งหมดของ username ที่ต้องการเป็น ไอพี 192.168.255.1
ทำงานที่ phpmyadmin
1.เข้าไปที่ phpMyAdmin
2.เลือกฐานข้อมูลที่ติดตั้ง Discuz 7.xx
3.กดที่ SQL
4.ที่หน้าประมวลผลคำสั่งสร้างฟังชั่นนี้
DROP function IF EXISTS `getid`//
CREATE FUNCTION `getid`(u_name char(15)) RETURNS mediumint(8) unsigned
    READS SQL DATA
BEGIN
DECLARE in_id mediumint(8) unsigned;
DECLARE EXIT HANDLER FOR NOT FOUND RETURN NULL;
SELECT uid INTO in_id
FROM cdb_members
WHERE username = u_name;
RETURN in_id;
END;//
DROP function IF EXISTS `ipedit`//
CREATE FUNCTION ipedit(u_name char(15)) RETURNS char(50) CHARSET utf8
    DETERMINISTIC
BEGIN
DECLARE geti INT;
DECLARE v_rentals INT;
DECLARE v_out   INT;
set geti = getid(u_name);
SELECT COUNT(*) INTO v_rentals
FROM cdb_posts
WHERE authorid = geti;
IF v_rentals = 0 THEN
RETURN CONCAT('ID ',Convert(u_name using utf8),' InvalID');
END IF;
UPDATE cdb_posts
SET useip ='192.168.255.1'
WHERE authorid = geti;
RETURN CONCAT('ID ',Convert(u_name using utf8),'= IP 192.168.255.1 = ',v_rentals);
END;//
http://image.ohozaa.com/i/fa6/oi330.jpg

5.ที่ Delimiter เปลี่ยนเป็น //
http://image.ohozaa.com/i/a6e/y3s29.jpg
6.กดปุ่ม ..."ลงมือ" หรือปุ่ม "GO" จะมีการสร้างฟังชั่น 2 ฟังชั่น
http://image.ohozaa.com/i/9e6/odj31.jpg
7.กลับไปที่เดิม ลองเปลี่ยนไอพีโดยใช้คำสั่งนี้
SELECT ipedit('bonparadorn');
http://image.ohozaa.com/i/33d/c6032.jpg
หมายเหตุ
1.เปลี่ยน bonparadorn เป็น username ที่ต้องการเปลี่ยนไอพี
2.ฟังชั่นนี้ใช้ได้กับ Discuz 7.xx เอาไปแก้ได้เปลี่ยนชื่อตารางเอง
3.การใช้งานครั้งถัดไปให้ไปที่เดิมฐานข้อมูลเดิมใช้แค่ SELECT ipedit('bonparadorn'); เท่านั้นเพราะฟังชั่นถูกสร้างไปแล้ว
4.วิธีลบฟังชั่นทิ้ง ให้ไปที่เดิมฐานข้อมูลเดิม
DROP function IF EXISTS `ipedit`;
DROP function IF EXISTS `getid`;
5.หากต้องการไอพีอื่นเปลี่ยนตรง SET useip ='192.168.255.1'
6.หากคุณทำผิดจะพบตัวอักษรแดง หากทำถูกจะพบสีเขียว
7.หากแก้ไขคำสั่งเฉพาะตำแหน่งที่บอก ยังไงๆก็ไม่มีข้อมูลอะไรเสียหาย จะเล่นพิเรณควรแบล็คอัพก่อน

bonparadorn โพสต์ 2011-5-29 13:30:08

แก้ไขครั้งสุดท้ายโดย bonparadorn เมื่อ 2011-5-29 14:38

แก้ไขครั้งสุดท้ายโดย bonparadorn เมื่อ 2011-5-29 14:37

command line SQL
ฟังชั่นเปลี่ยนไอพี ที่ต้องการ เป็นไอพีอื่น

DELIMITER //
CREATE FUNCTION ipedit(p_inventory_id INT) RETURNS char(50) CHARSET utf8
    DETERMINISTIC
BEGIN
DECLARE v_rentals INT;
DECLARE v_out   INT;
SELECT COUNT(*) INTO v_rentals
FROM cdb_posts
WHERE authorid = p_inventory_id;
IF v_rentals = 0 THEN
RETURN CONCAT('ID ',p_inventory_id,' InvalID');
END IF;
UPDATE cdb_posts
SET useip ='192.168.0.1'
WHERE authorid = p_inventory_id;
RETURN CONCAT('ID ',p_inventory_id,'= IP 192.168.0.1 COUNT = ',v_rentals);
END;//
วิธีเรียกใช้
DELIMITER ;
SELECT ipedit("1");
SELECT ipedit("2");
SELECT ipedit("301");


http://image.ohozaa.com/i/818/b6128.jpg

bonparadorn โพสต์ 2011-5-15 17:27:15

แก้ไขครั้งสุดท้ายโดย bonparadorn เมื่อ 2011-5-15 22:25

เปลี่ยนคำผิดที่ใครๆโพสไว้ให้ถูกUPDATE `cdb_posts` SET message = replace(message,"คับ","ครับ") WHERE `message`LIKE '%คับ%'ในตัวอย่างทำให้คำว่า คับ แก้เป็น ครับ ทั้งเว็บ
ถ้าท่านแอดมินนำไปใช้ code ชุดนี้ คนอ่านจะงง {:15_672:}
หน้า: [1]
ดูในรูปแบบกติ: เพิ่มเลขจำนวนคนดูตามต้องการ