[WEBDEV Room!] แชร์ทุกเรื่อง ถ้าเป็นเว็บ!

เริ่มโดย EThaiZone, 05 สิงหาคม 2008, 22:39:50

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

oldgame

#160
อ้างถึงจาก: rapeedu ใน 28 สิงหาคม 2008, 15:56:28
ยังงงอยู่ดีครับ คือถ้าผมมี field นึงที่เก็บ text หรือ tag ผมควร set เป็น index ไว้หรือครับ แล้วเวลา query จะต้องทำยังไง

เห็นว่า a='1' แล้ว 1 นี่มาจากไหนอ่ะคับ งง

ช่วยอธิบายด้วยครับ อยาก optimize ครับ

อย่าง tag ก็คงต้องเก็บเป็น text แหละครับ เพราะมันไม่ตายตัว ก็ควรจะติด index ด้วยเพราะใช้ในการ query บ่อย (ตามผมเข้าใจนะ :P)


ส่วน a='1' นี่เค้ายกตัวอย่างมาครับ

อย่างทุกทีผมแยกข่าวแบบนี้ตรง ๆ ครับ a='ข่าวกีฬา' ,a='ข่าวการเมือง',... อีกมากมาย เวลาเรียกใช้ผมก็ดึงด้วย text มา ตอนแรก ๆ มันก็ไม่มีปัญหาครับ แต่พอฐานข้อมูลใหญ่ขึ้นก็เริ่มมีปัญหาแบบทวีคูณเลยทีเดียวเยอะขึ้นหนักมากขึ้นเท่าตัว พี่เค้าเลยแนะนำมาว่า

เราก็เก็บอีกตารางว่า 1='ข่าวกีฬา', 2='ข่าวการเมือง',3='อะไรก็ว่าไป' ...

ละก็เก็บเป็นตัวเลขในตารางเดิม เวลาจะใช้ก็เรียก ด้วย number หรือจะมา join กันอะไรแบบนี้อะครับ


ผมก็ยังเข้าใจไม่กระจ่างหมดนะครับ ลึก ๆ อาจจะต้องให้ พี่ ๆ ช่วยตอบ

sql ช่างลึกซึ้งจริง ๆ
[direct=http://www.pwgamer.com]โปรเกมส์[/direct] luna-z blog ส่วนตัวรวมโปร
[direct=http://www.kaichonasean.com]ไก่ชน[/direct] เว็บไซต์รวมซุ้มไก่ชน
[direct=http://www.boybdream.com]รับออกแบบเว็บไซต์[/direct]  รับออกแบบเว็บไซต์
[direct=http://www.2winweb.com]รับทำเว็บ[/direct]  รับออกแบบเว็บไซต์
[direct=http://www.pralanna.com]พระเครื่อง[/direct] พระล้านนา รวมพระเครื่องเมืองเหนือ

thenetxx

ขออนุญาต copy ความรู้นี้ไปลงบอร์ดผมนะครับ

:)

Develop site but can't develop life
ASIA

inDexTop10

-->
Warning: include() [function.include]: Failed opening 'layouts/Select a layout:' for inclusion (include_path='.;C:\php5\pear')

-->

ถ้ามัน เป็นอย่างนี้หมายความว่าไงครับ

[direct=http://goo.gl/h2PZom]Digitalocean.com[/direct] - ถูกและดีจริง ลด 10$ ลงไปเป็นบอก

thenetxx

อ้างถึงจาก: matha048 ใน 28 สิงหาคม 2008, 20:01:18
-->
Warning: include() [function.include]: Failed opening 'layouts/Select a layout:' for inclusion (include_path='.;C:\php5\pear')

-->

ถ้ามัน เป็นอย่างนี้หมายความว่าไงครับ



ระบุ path ผิดมั้งครับ หาไฟล์ที่จะ include ไม่เจอ
Develop site but can't develop life
ASIA

inDexTop10

ูููู^^

ขอบคุณครับ

ไม่เกียวกับ php5 ใช่ปะ
[direct=http://goo.gl/h2PZom]Digitalocean.com[/direct] - ถูกและดีจริง ลด 10$ ลงไปเป็นบอก

rapeedu

อ้างถึงจาก: oldgame ใน 28 สิงหาคม 2008, 16:35:37
อ้างถึงจาก: rapeedu ใน 28 สิงหาคม 2008, 15:56:28
ยังงงอยู่ดีครับ คือถ้าผมมี field นึงที่เก็บ text หรือ tag ผมควร set เป็น index ไว้หรือครับ แล้วเวลา query จะต้องทำยังไง

เห็นว่า a='1' แล้ว 1 นี่มาจากไหนอ่ะคับ งง

ช่วยอธิบายด้วยครับ อยาก optimize ครับ

อย่าง tag ก็คงต้องเก็บเป็น text แหละครับ เพราะมันไม่ตายตัว ก็ควรจะติด index ด้วยเพราะใช้ในการ query บ่อย (ตามผมเข้าใจนะ :P)


ส่วน a='1' นี่เค้ายกตัวอย่างมาครับ

อย่างทุกทีผมแยกข่าวแบบนี้ตรง ๆ ครับ a='ข่าวกีฬา' ,a='ข่าวการเมือง',... อีกมากมาย เวลาเรียกใช้ผมก็ดึงด้วย text มา ตอนแรก ๆ มันก็ไม่มีปัญหาครับ แต่พอฐานข้อมูลใหญ่ขึ้นก็เริ่มมีปัญหาแบบทวีคูณเลยทีเดียวเยอะขึ้นหนักมากขึ้นเท่าตัว พี่เค้าเลยแนะนำมาว่า

เราก็เก็บอีกตารางว่า 1='ข่าวกีฬา', 2='ข่าวการเมือง',3='อะไรก็ว่าไป' ...

ละก็เก็บเป็นตัวเลขในตารางเดิม เวลาจะใช้ก็เรียก ด้วย number หรือจะมา join กันอะไรแบบนี้อะครับ


ผมก็ยังเข้าใจไม่กระจ่างหมดนะครับ ลึก ๆ อาจจะต้องให้ พี่ ๆ ช่วยตอบ

sql ช่างลึกซึ้งจริง ๆ
อ๋อ คือเก็บเป็น id หมดเลย ไม่ใช่ text ขอบคุณมากครับ
[direct=http://emonitorplus.com]บริการรับส่ง Email Marketing[/direct] [direct=http://emonitorplus.com]บริการรับส่งข่าวสารด้วย E-mail[/direct][direct=http://emonitorplus.com/%E0%B8%9C%E0%B8%A5%E0%B8%87%E0%B8%B2%E0%B8%99-email-marketing-%E0%B8%A5%E0%B8%B9%E0%B8%81%E0%B8%84%E0%B9%89%E0%B8%B2/]ผลการส่ง Email marketing[/direct]
[direct=https://www.facebook.com/emonitorplus]บริการรับส่ง email marketing[/direct]
[direct=http://emonitorplus.com/]รับส่ง email marketing[/direct]

EThaiZone

^
^
ผมว่ามันเรื่องปกตินะ

ผมเคยไปเจอเคสหนึ่งของบริษัทหนึ่ง มีระบบฐานข้อมูลในนั้่น
ไปดูทั้งหมด สรุประบบไม่ดีเอาซะเยอะ

เหตุมาจากแบบปัญหาด้านบน คือเก็บข้อมูลซ้ำๆ กัน
ไม่ได้ใช้การอ้างอิง id

จริงอยู่มันดูสบายในตอน query แบบปกติ
แต่พอมาเจอ where กำหนดหาค่าที่ไม่ใช่ primary key เข้า ก็ถึงกับอืดเลย

แถมจะมาพัฒนาเป็น web app ก็ยากกว่าเก่า
บัดนี้ยังไม่ไปถึงไหนเลย ได้แต่ส่ายหัวปลงๆ เพราะงานช้างทำคนเดียวไม่ได้

:-X

rapeedu

ผมเก็บเป็น id มานานแล้วครับ แต่ผมไม่ได้ทำเพื่อให้เร็ว แต่เพือให้ง่ายในการปรับปรุงแก้ไขหรือเพิ่มเติม เพิ่งรู้ว่ามันทำให้เร็วได้ด้วย อิอิ  :'(
[direct=http://emonitorplus.com]บริการรับส่ง Email Marketing[/direct] [direct=http://emonitorplus.com]บริการรับส่งข่าวสารด้วย E-mail[/direct][direct=http://emonitorplus.com/%E0%B8%9C%E0%B8%A5%E0%B8%87%E0%B8%B2%E0%B8%99-email-marketing-%E0%B8%A5%E0%B8%B9%E0%B8%81%E0%B8%84%E0%B9%89%E0%B8%B2/]ผลการส่ง Email marketing[/direct]
[direct=https://www.facebook.com/emonitorplus]บริการรับส่ง email marketing[/direct]
[direct=http://emonitorplus.com/]รับส่ง email marketing[/direct]

tinnoi

ผมอยากจะทำเว็บแหล่งข้อมูลข่าว เพื่อ feed ข้อมูลให้เว็บอื่น เนี่ยเราควรทำแบบไหนดีครับ
ผมไม่เก่ง php มากเท่าไหร่ เลยคิด concept ได้ประมาณ

- query ข่าวออกมา เป็นระยะ ๆ แล้ว gen เป็น text file ให้ เว็บอื่น ๆ มา get content  หรือ

- มีหน้า query ข่าว ทำมาเป็น XML เลย ดี  ( แต่จะ xml เอาไปใช้ต่อยังไง  )  หรือ

- ทำเว็บเป็น wordpress แล้วมันจะมี Feed RSS ที่ wordpress feed ออกมา ..
แต่นึกไม่ออกว่าตรงนี้จะคนอื่นจะเอาไปใส่ในเว็บเขายังไง


คิดว่าจะทำแบบไหนดีครับ ให้คนอยากเอาข่าวเราไปใส่ในเว็บเขาได้ง่าย ๆ ไม่ต้องรู้เรื่อง programming มาก
[direct=https://trainee.naruthee.com]หาที่ฝึกงาน[/direct] ,
[direct=http://www.piyamitrgroup.com]รับรื้อถอน[/direct] ,
[direct=https://fastvisa2024.weebly.com/]รับทำวีซ่า[/direct] ,
[direct=https://business.10thai.com]10thai[/direct]

pugkung

อ้างถึงจาก: tinnoi ใน 29 สิงหาคม 2008, 09:13:47
ผมอยากจะทำเว็บแหล่งข้อมูลข่าว เพื่อ feed ข้อมูลให้เว็บอื่น เนี่ยเราควรทำแบบไหนดีครับ
ผมไม่เก่ง php มากเท่าไหร่ เลยคิด concept ได้ประมาณ

- query ข่าวออกมา เป็นระยะ ๆ แล้ว gen เป็น text file ให้ เว็บอื่น ๆ มา get content  หรือ

- มีหน้า query ข่าว ทำมาเป็น XML เลย ดี  ( แต่จะ xml เอาไปใช้ต่อยังไง  )  หรือ

- ทำเว็บเป็น wordpress แล้วมันจะมี Feed RSS ที่ wordpress feed ออกมา ..
แต่นึกไม่ออกว่าตรงนี้จะคนอื่นจะเอาไปใส่ในเว็บเขายังไง


คิดว่าจะทำแบบไหนดีครับ ให้คนอยากเอาข่าวเราไปใส่ในเว็บเขาได้ง่าย ๆ ไม่ต้องรู้เรื่อง programming มาก

ก็ทำแบบนี้ มีหน้า query ข่าว ทำมาเป็น XML เลย ดี  ( แต่จะ xml เอาไปใช้ต่อยังไง  ) ก็ได้ครับ

แล้วเราก็ เจน code javascript เพื่อให้มาดึงข้อมูลจาก หน้า php ของเราเหมือน Rssfeed ของ rssthai
<script language="JavaScript" type="text/JavaScript" src="http://www.rssthai.com/rssreader.aspx?rssuri=http://www.rssthai.com/rss/entertain.xml&rowcount=5"></script>
โค้ดประมาณนี้ เสร็จแล้วก็ให้ สมาชิกหรือคนที่จะเอาข่าวเราไปลงเว็บ ก็อบ โค้ดนี้ไปอ่ะครับ

แต่ผมก็ไม่รู้นะครับว่าเค้าสร้าง โค้ดยังไง  :P

tinnoi

โอเคครับ งั้นเดี๋ยวผม จะลอง gen text file เป็น XML มาก่อนนะครับ

ถ้าได้ออกมาแล้วจะ  มาถามต่ออีกที ว่าจะเล่นกับมันยังไง
[direct=https://trainee.naruthee.com]หาที่ฝึกงาน[/direct] ,
[direct=http://www.piyamitrgroup.com]รับรื้อถอน[/direct] ,
[direct=https://fastvisa2024.weebly.com/]รับทำวีซ่า[/direct] ,
[direct=https://business.10thai.com]10thai[/direct]

kudjung

ระบบฐานข้อมูลของเว็บนี่สำคัญนะครับ ผมจะออกแบบในกระดาษก่อน เพื่อให้เห็นภาพความสัมพันธ์ของแต่ละ
ตาราง พยามลดความซ้ำซ้อนของข้อมูล แล้วค่อยเอามาทำในโปรแกรมฐานข้อมูล

EThaiZone

ใครที่ไม่ถนัดเรื่องระบบฐานข้อมูล
อยากให้หัดใส้ช ms access จริงๆ

เพราะเรื่อง relation ในโปรแกรมนี้
เวลาออกแบบมันเป็นความต้องการขั้นพื้นฐานของมันเลย

ถ้าเข้าใจ จะสามารถสร้างระบบที่ต้องการน้อย
แต่ใช้งานได้ครอบคลุมครับ

:P

TBZS

Question  ?

???

ผมอยากทราบเรื่องการใช้ subdomain  มีหลักการใช้ยังไงถึงจะถูกจะเหมาะ


รึว่ามั่วๆไปได้ ไม่มีปัญหาอะไร

EThaiZone

อ้างถึงจาก: AntacticA ใน 31 สิงหาคม 2008, 20:17:03
Question  ?

???

ผมอยากทราบเรื่องการใช้ subdomain  มีหลักการใช้ยังไงถึงจะถูกจะเหมาะ


รึว่ามั่วๆไปได้ ไม่มีปัญหาอะไร

ใช้เหมือนโดเมนปกติแหละครับ
เวลาจะเลือกใช้ชื่ออะไร เวลาจะทำอะไร ก็คิดซะว่าเหมือนโดเมนปกติ
อย่างเช่นคงไม่มีใครทำเว็บศาสนา ในซัพโดเมนว่า girl

- content ในซัพโดเมนมีความสัมพันธ์กันตัวชื่อซัพโดเมน
- ไม่ใช่ชื่อที่ยาวเกินไป เหมือนกับการจดโดเมนปกติที่ชื่อไม่ควรยาวเกินจำเป็น
- ทำลิงค์เข้าด้วย เพราะบอทมันไม่รู้ได้เองว่ามีซัพโดเมนเกิดใหม่
- ไซต์แม็พก็จำเป็น (ถ้่ามี) เพราะไซต์แม็พของซัพโดเมนตามหลัก จะไม่ใช่ร่วมกับของเว็บหลัก
- การทำ backlink เข้าซัพโดเมน จะไม่มีผลกับโดเมนหลัก (ยกเว้นทำลิงค์จากซัพโดเมนเข้าโดเมนหลักอีกที)

และสุดท้าย ก็เข้าใจง่ายๆ ว่า
subdomain เป็น sub ของ domain หลัก
และ domain หลัก เป็น sub ของ tld อีกที

** tld = top-level domain such as .com .net .org... etc.

TBZS

ok คับ

ดูท่าแตกมากไปจะทำเสียวลำบาก


:)

ขอบคุณคับ

BosnoS

รบกวนคุณโจ้ ขอ ไอเดียหน่อยคัรบ

คือผม กำลัง ลองเขียนสคริป นับจำนวนคนออนไลน์ขณะนี้ และ มีใครออนไลน์บ้าง

ถ้าเป็นสมาชิกที่ login ก็จะโชว์ชื่อ ถ้าไม่ได้ login จะนับเป็น guest

ซึ่งตรงนี้ผมตอบโจทย์ได้หมดแล้ว (แต่ดูไม่ค่อยได้เรื่อง code รก)  แต่ไม่เป็นไร มั่วๆ ดู สนุกดี

แต่ที่ผมติดปัญหาก็คือ

ผมจะใช้อะไรเป็นตัวแยกความแตกต่าง ว่า คน 2 คน เข้ามา ถือเป็นคนละคนกัน

เช่น

ผม ไม่ได้ login เข้าเว็บ มา ระบบจะ เซ้ตชื่อเป็น Guest แล้วนับเป้น 1
คุณโจ้ ก็ไม่ได้ login เข้าเว็บ มา ระบบจะ เซ้ตชื่อเป็น Guest แล้วนับเป้น 2

แต่ผม ลองทำดู ในเมื่อ เซ็ตชื่อเป้น Guest มันก็เลยมองว่าซ้ำกัน

มีคนบอกว่า ใช้ session_id  ผมลองแล้ว มันช่วยได้ระดับหนึ่ง แต่ถ้าคนนั้น ปิดเว็บแล้วเข้ามาใหม่ session_id ก็เปลี่ยน ทำให้กลายเป็น 2 คน ทั้งๆ ที่คนเดียวกัน

ผมก็เลยคิดว่า จะ จับ ip ด้วย แล้วนำมาเช็ค ถ้า ip ซ้ำกัน ก็ถือว่าคนเดียวกัน แต่ดูๆแล้วมันแปลกๆ คิดว่าที่เขาทำๆ กัน ไม่ใช่วิธีนี้


คุณโจ้แนะนำผมหน่อยซิคัรบ


ลืมบอกไป ระบบที่ผมคิดเอง คือ ใช้ sql ด้วยนะ  ใช้ text ไม่เป็นเลย


มีคนเข้า ก็เช็คว่า login หรือยัง ถ้ายัง ก็เซตเป็น guest เช็คเวลาเข้าเว็บด้วย แล้วยัดลง sql  ก่อนยัดก็เช็คดูก่อนว่า ใน sql มีคนนี้หรือยัง ถ้ามีแล้วก็ลบทิ้งก่อนจะเขียนทับ

ประมาณนี้นะคับ ที่ผมคิดได้

EThaiZone

สำหรับแนวคิดข้างบน ถ้าเป็นผมๆ จะทำกึ่ง session + คุ๊กกี้

ผมเคยเจอเคสหนึ่งที่ลูกค้า request มาว่า อยากเก็บให้คนดูเก็บข้อมูลบางอย่าง
ที่ได้ทำกับเว็บแล้ว เมื่อกลับมาคราวหลัง ยังสามารถเข้าถึงข้อมูลนั้นได้

ผมก็เหมือนคุณ bosnos เลย คือติดว่า session มันหายเมื่อปิด และ สมาชิกไม่ต้องสมัคร
(เน้นความสบายของคนเข้าชม)

ปัญหาที่ว่าเลยแก้โดยเก็บค่าคุกกี้ตัวหนึ่ง ซึ่งเป็น session ตัวแรกที่เขาเข้าเว็บเรา
(พิมพ์ด้วย Google Chrome มันพิมพ์ไทยปัญหาเยอะมาก)
และ session นี้จะโดนกลับมาใช้อีกครั้งในการเข้าครั้งต่อไป

$cookie_sessid = "user_id";  //ตรงนี้ก็ปรับค่ากันเอาเอง ใช้เก็บเซสชั่นแรกสุดที่คนเข้ามาดู

if(empty($_COOKIE[$cookie_sessid])) {
unset($_COOKIE[session_name()]);
session_regenerate_id(true);
$sessid = session_id();
setcookie($cookie_sessid, $sessid, time()+3600*24*30, "/");
} else {
if($_COOKIE[$cookie_sessid] != session_id()) {
unset($_COOKIE[session_name()]);
setcookie(session_name(), $_COOKIE[$cookie_sessid], time()+3600);
session_id($_COOKIE[$cookie_sessid]);  //ตรงนี้เป็นจุดที่เราเอา session เก่ามาทับของใหม่
}
$sessid = session_id();
}


สามารถนำโค้ดนี้ไปใช้ได้ครับ
เวลาจะเรียกเอา session ของคนดู ก็เอาจาก $sessid เลย

ปล. กลับไปใช้ firefox ดีกว่า ปัญหาพิมพ์ไทยมันเยอะจัด

BosnoS

ล่าสุด ผมเ้ช็ค ip แทนครับ ตามคำแนะนำคุณไอซ์

เมื่อคืนลองทำเสร็จล่ะ เด๊่ยวจะลองเอา code คุณโจ้ ไปเล่นอีกทีครับ

tinnoi

ถ้าผมเขียนคำสั่ง setcookie ไว้ใน ไฟล์ที่อยู่ใน folder ย่อย อีกทีไม่ได้อยู่ในหน้าเว็บหลัก
หมายความว่า cookie ที่เราสร้างไว้ จะไม่สามารถใช้ในหน้าหลักได้เหรอครับ

เช่น _http://www.myweb.com/service/createcookie.php   มีการ setcookie("user","tinnoi",time()+10000);



จะทำยังไงให้ ในหน้า  _http://www.myweb.com/ จะเรียก cookie   $_COOKIE[user]  ออกมาได้ครับ

[direct=https://trainee.naruthee.com]หาที่ฝึกงาน[/direct] ,
[direct=http://www.piyamitrgroup.com]รับรื้อถอน[/direct] ,
[direct=https://fastvisa2024.weebly.com/]รับทำวีซ่า[/direct] ,
[direct=https://business.10thai.com]10thai[/direct]