วันนี้ผมจะมาแนะนำวิธีการนำข้อมูลที่เรา SELECT มาจาก
database เพื่อนำมาใช้ประโยชน์ในด้านต่างๆ ด้วยภาษา
Python อย่างวันนี้ตัวอย่างที่ยกขึ้นมา จะเป็นการนำ ข้อมูล Version ที่อยู่ใน database มา + กันและแสดงผลลัพธ์ค่าที่เราต้องการนั่นเอง เพื่อไม่ให้เสียเวลาเรามาเริ่มกันเลย
1.ทำการ import
library psycopg2 เพื่อที่จะทำการเชื่อมต่อกับ database
2.เขียนคำสั่งเพื่อเชื่อมต่อ database
โค้ด: เลือกทั้งหมด
con = p.connect(
host='localhost',
database='ben01',
user='postgres',
password='postgres'
)
3. สร้างฟังก์ชั่นขึ้นมาเพื่อที่เราจะสามารถทำการเรียกข้อมูลจาก database มาใช้
โค้ด: เลือกทั้งหมด
def sum_ver():
cur = con.cursor()
cur.execute("SELECT latest_version FROM ir_module_module where state = 'installed'")
total = cur.fetchall()
4. สร้างตัวแปรขึ้นมาเพื่อที่จะเก็บค่าตัวเลขที่เราจะทำการแยกเอาไว้
โค้ด: เลือกทั้งหมด
num1 = 0
num2 = 0
num3 = 0
num4 = 0
num5 = 0
โดย code คือ เราต้องการจะแสดงข้อมูลของ lastest_version จาก ฐานข้อมูล ir_module_module โดยที่ข้อมูลที่เราต้องการจะโชวน์ state จะต้องเป็น installed เท่านั้นถ้า ไม่ใช่ จะไม่ทำการเรียกของแถวนั้นมาโชวน์
ผลลัพท์
- Python Knowledge-1.png (3.25 KiB) Viewed 1175 times
5. ค่าที่ได้จะเป็น ประเภท list ซึ่งถ้าเราต้องการจะนำเลขภายในมาใช้เราจะต้องทำการดึง ตัวเลขภายในออกมาให้กลายเป็น string ก่อน โดยวิธีการคือเราจะใช้ for loop ในการดึงค่า
ผลลัพธ์
- Python Knowledge-1.png (2.02 KiB) Viewed 1175 times
6. ซึ่งพอถึงขั้นตอนนี้แล้วเราจะทำการแยกค่าภายในตัว string เพื่อเก็บไว้ภายในตัวแปรที่เราทำการสร้างขึ้น โดยใช้คำสั่ง split
แต่ภายในข้อมูลของเราบางตัวมันเป็นค่า 4 ตำแหน่ง บางตัวเป็น 5 ตำแหน่ง ซึ่งเราจะใช้ 5 ตำแหน่ง
- Python Knowledge-1.png (2.01 KiB) Viewed 1175 times
7. เราสามารถแก้ไขได้ง่ายๆโดยการ ใช้ append เพื่อเพิ่ม 0 ต่อไปข้างหลังทุกตัว
8. เราจะทำการนำค่าที่เรา split แล้ว มาทำการ + เพิ่มภายในตัวแปรที่เราได้สร้างขึ้นมาไว้ แต่ละตำแหน่งโดยใช้คำสั่ง
โค้ด: เลือกทั้งหมด
num1 += int(sp[0])
num2 += int(sp[1])
num3 += int(sp[2])
num4 += int(sp[3])
num5 += int(sp[4])
resu = "Summery Version = {}.{}.{}.{}.{}".format(num1, num2, num3, num4, num5)
print(resu)
และแสดงผลลัพธ์ที่เราต้องการ
ผลลัพธ์ที่ได้
- Python Knowledge-1.png (6.23 KiB) Viewed 1175 times
fullcode
โค้ด: เลือกทั้งหมด
# -*- coding:utf-8 -*
import psycopg2 as p
con = p.connect(
host='localhost',
database='ben01',
user='postgres',
password='postgres'
)
def sum_ver():
cur = con.cursor()
cur.execute("SELECT latest_version FROM ir_module_module where state = 'installed'")
total = cur.fetchall()
num1 = 0
num2 = 0
num3 = 0
num4 = 0
num5 = 0
for row in total:
for i in row:
sp = i.split('.')
sp.append('0')
num1 += int(sp[0])
num2 += int(sp[1])
num3 += int(sp[2])
num4 += int(sp[3])
num5 += int(sp[4])
resu = "Summery Version = {}.{}.{}.{}.{}".format(num1, num2, num3, num4, num5)
print(resu)
if __name__ == '__main__':
sum_ver()
อ้างอิง
viewtopic.php?f=16&t=64136
https://www.w3schools.com/python/ref_string_split.asp
https://www.pythonforbeginners.com/dictionary/python-split
วันนี้ผมจะมาแนะนำวิธีการนำข้อมูลที่เรา SELECT มาจาก [url=https://www.mindphp.com/68-php-e-commerce/2055-database]database[/url] เพื่อนำมาใช้ประโยชน์ในด้านต่างๆ ด้วยภาษา [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2417-python-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html]Python[/url] อย่างวันนี้ตัวอย่างที่ยกขึ้นมา จะเป็นการนำ ข้อมูล Version ที่อยู่ใน database มา + กันและแสดงผลลัพธ์ค่าที่เราต้องการนั่นเอง เพื่อไม่ให้เสียเวลาเรามาเริ่มกันเลย
1.ทำการ import [url=https://www.mindphp.com/forums/viewtopic.php?f=29&t=42917]library[/url] psycopg2 เพื่อที่จะทำการเชื่อมต่อกับ database
[code]import psycopg2 as p[/code]
2.เขียนคำสั่งเพื่อเชื่อมต่อ database
[code]con = p.connect(
host='localhost',
database='ben01',
user='postgres',
password='postgres'
)[/code]
3. สร้างฟังก์ชั่นขึ้นมาเพื่อที่เราจะสามารถทำการเรียกข้อมูลจาก database มาใช้
[code]def sum_ver():
cur = con.cursor()
cur.execute("SELECT latest_version FROM ir_module_module where state = 'installed'")
total = cur.fetchall()[/code]
4. สร้างตัวแปรขึ้นมาเพื่อที่จะเก็บค่าตัวเลขที่เราจะทำการแยกเอาไว้
[code] num1 = 0
num2 = 0
num3 = 0
num4 = 0
num5 = 0[/code]
โดย code คือ เราต้องการจะแสดงข้อมูลของ lastest_version จาก ฐานข้อมูล ir_module_module โดยที่ข้อมูลที่เราต้องการจะโชวน์ state จะต้องเป็น installed เท่านั้นถ้า ไม่ใช่ จะไม่ทำการเรียกของแถวนั้นมาโชวน์
ผลลัพท์
[attachment=3]Python Knowledge-1.png[/attachment]
5. ค่าที่ได้จะเป็น ประเภท list ซึ่งถ้าเราต้องการจะนำเลขภายในมาใช้เราจะต้องทำการดึง ตัวเลขภายในออกมาให้กลายเป็น string ก่อน โดยวิธีการคือเราจะใช้ for loop ในการดึงค่า
[code] for row in total:
for i in row:[/code]
ผลลัพธ์
[attachment=2]Python Knowledge-1.png[/attachment]
6. ซึ่งพอถึงขั้นตอนนี้แล้วเราจะทำการแยกค่าภายในตัว string เพื่อเก็บไว้ภายในตัวแปรที่เราทำการสร้างขึ้น โดยใช้คำสั่ง split
[code] sp = i.split('.')[/code]
แต่ภายในข้อมูลของเราบางตัวมันเป็นค่า 4 ตำแหน่ง บางตัวเป็น 5 ตำแหน่ง ซึ่งเราจะใช้ 5 ตำแหน่ง
[attachment=1]Python Knowledge-1.png[/attachment]
7. เราสามารถแก้ไขได้ง่ายๆโดยการ ใช้ append เพื่อเพิ่ม 0 ต่อไปข้างหลังทุกตัว
[code]sp.append('0')[/code]
8. เราจะทำการนำค่าที่เรา split แล้ว มาทำการ + เพิ่มภายในตัวแปรที่เราได้สร้างขึ้นมาไว้ แต่ละตำแหน่งโดยใช้คำสั่ง
[code] num1 += int(sp[0])
num2 += int(sp[1])
num3 += int(sp[2])
num4 += int(sp[3])
num5 += int(sp[4])
resu = "Summery Version = {}.{}.{}.{}.{}".format(num1, num2, num3, num4, num5)
print(resu)[/code]
และแสดงผลลัพธ์ที่เราต้องการ
ผลลัพธ์ที่ได้
[attachment=0]Python Knowledge-1.png[/attachment]
fullcode
[code]# -*- coding:utf-8 -*
import psycopg2 as p
con = p.connect(
host='localhost',
database='ben01',
user='postgres',
password='postgres'
)
def sum_ver():
cur = con.cursor()
cur.execute("SELECT latest_version FROM ir_module_module where state = 'installed'")
total = cur.fetchall()
num1 = 0
num2 = 0
num3 = 0
num4 = 0
num5 = 0
for row in total:
for i in row:
sp = i.split('.')
sp.append('0')
num1 += int(sp[0])
num2 += int(sp[1])
num3 += int(sp[2])
num4 += int(sp[3])
num5 += int(sp[4])
resu = "Summery Version = {}.{}.{}.{}.{}".format(num1, num2, num3, num4, num5)
print(resu)
if __name__ == '__main__':
sum_ver()[/code]
อ้างอิง
[url]https://www.mindphp.com/forums/viewtopic.php?f=16&t=64136[/url]
https://www.w3schools.com/python/ref_string_split.asp
https://www.pythonforbeginners.com/dictionary/python-split