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

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

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

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

oldgame

คือมีปัญหามาถามครับผม  :P

ในฐานข้อมูลข่าวขนาดใหญ่ 50000 - 60000 row
ผมเก็บ id,name,type,text,date แบบนี้ครับผม

ปรกติผมเรียกใช้ดูข่าวใหม่ไปเก่่าแบบนี้ครับ


select id,name,text,date from news where type='ข่าวสด' order by id desc limit 10


หลัง ๆ มานี้มันอืดขึ้นเลื่อย ๆ ตามขนาดของฐานข้อมูล
เห็นพี่ ๆ บอกว่า order by มันไม่ดี พอจะมีวิธีเอามันออกแล้วยังทำงานได้เหมือนเดิมด้วยวิธีอื่น หรือมีวิธีเขียนใหม่ให้มันเร็วขึ้นมั้ยครับ
จนปัญญาแล้วครับ  :-X
[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] พระล้านนา รวมพระเครื่องเมืองเหนือ

icez

alter table news add index(type);

เอาไป query ใน phpmyadmin ซักทีครับ
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

pugkung

select id,name,text,date from news where [color=red]type='ข่าวสด'[/color] order by id desc limit 10

ที่มันอืดคือการ query จาก text ใช่ไหมครับ

หรือว่าอย่างไร อยากให้ช่วยอธิบายทีครับ

ขอบคุณ คุณ icez มากนะครับ

EixQzUnG

อ้างถึงจาก: icez ใน 21 สิงหาคม 2008, 19:13:29
alter table news add index(type);

เอาไป query ใน phpmyadmin ซักทีครับ


ขยาย ให้กระจ่างหน่อย จิ  ;D ;D ตัวอย่างก็ได้ครับ

thenetxx

อ้างถึงจาก: zunkz ใน 21 สิงหาคม 2008, 19:59:05
อ้างถึงจาก: icez ใน 21 สิงหาคม 2008, 19:13:29
alter table news add index(type);

เอาไป query ใน phpmyadmin ซักทีครับ


ขยาย ให้กระจ่างหน่อย จิ  ;D ;D ตัวอย่างก็ได้ครับ

เซ็ต field 'type' ให้เป็น index ครับ จะได้ค้นหาง่าย ๆ ไม่เหนื่อย DB  :)
Develop site but can't develop life
ASIA

oldgame

อ้างถึงจาก: thenetxx ใน 21 สิงหาคม 2008, 20:01:13
อ้างถึงจาก: zunkz ใน 21 สิงหาคม 2008, 19:59:05
อ้างถึงจาก: icez ใน 21 สิงหาคม 2008, 19:13:29
alter table news add index(type);

เอาไป query ใน phpmyadmin ซักทีครับ


ขยาย ให้กระจ่างหน่อย จิ  ;D ;D ตัวอย่างก็ได้ครับ

เซ็ต field 'type' ให้เป็น index ครับ จะได้ค้นหาง่าย ๆ ไม่เหนื่อย DB  :)

เป็น index อยู่ก่อนแล้วครับ  :-X
[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] พระล้านนา รวมพระเครื่องเมืองเหนือ

icez

งั้นคงต้องจำกัดขอบเขตการ query ล่ะครับ

อาจต้องเพิ่ม where id > xxxx เข้ามาช่วยด้วยอีกหน่อย
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

EThaiZone

หลายวันมานี้ เหมือนผมผ่านอะไรมาเยอะเลย เหมือนอยู่ที่แปลกๆ มาไกล
วันนี้พอโพสสั้นๆ นะครับ แบบว่าเหนื่อยมาก~~




"เขียน .htaccess สำหรับ Modrewrite อย่างไรให้ใช้งานได้ทุกโฮส"

เรื่องคราวนี้ ผมเขียนให้สำหรับคนเขียน .htaccess เป็นแล้วนะครับ
หลักการมีไม่กี่ข้อครับ ถ้าทำตามนี้ได้ จะใช้งานได้เกือบทุกโฮสเลย
(แน่ๆ อย่าง Netfirms ที่ว่ามีปัญหาบ่อย ก็ใช้งานได้ปกติ)

1. ระบุ RewriteBase ด้วยพาทแบบซัพโฟลเดอร์โดยนับจากโดเมน และปิดหัวท้ายด้วย "

ยกตัวอย่าง .htaccess บนพาทเว็บ www.example.com/myscript/
จะต้องเขียน RewriteBase เป็น
RewriteBase "/myscript/"

2. ระบุพาทของ url หลังกฎของ rewrite ด้วยพาทแนวเดียวกันกับข้อ 1

จากตัวอย่างข้อหนึ่ง สมมุติผมจะเขียน rewrite แปลง  [keyword].html เป็น page.php?kw=[keyword]
โดยทั้งหมดอยู่ใน www.example.com/myscript/  จะเขียนได้เป็น

RewriteRule ^([^\.]+)\.html$ "/myscript/page.php?kw=$1" [L]


ถ้าทำตาม 2 ข้อนี้  ก็จะทำให้สคริปทำงานได้อย่างเต็มที่แล้วครับ  :)




เบื้องหลังทำไมต้องเป็นแบบนี้

1. ทำไมต้องระบุพาทเต็ม
เหตุมาจาก modrewrite ทำงานด้วยความสามารถของ apache
แล้วการกำหนดค่าโดเมน จะอิงกับโฟลเดอร์รากที่ใช้แสดงรากของโดเมนนั้นๆ
(นึกภาพไม่ออก ก็ไปลองแงะไฟล์ตั้งค่าของ apache ดู)
ทำให้เวลาการกำหนดพาท จึงต้องอิงจากรากโดเมนเป็นหลัก

2. ทำไมต้องมี " ปิดหัวท้าย
เหตุเพราะเพื่อรองรับในกรณีโฟลเดอร์หรือไฟล์มี ช่องว่าง
เป็นสาเหตุตกม้าตายของใครต่อหายคนมานักต่อนักแล้ว
เพื่อกันไม่ให้ระบบเข้าใจผิดว่าหลังช่องว่างคือ flag จึงต้องใส่ " ปิดหัวท้าย

:)

EThaiZone

อ้างถึงจาก: zunkz ใน 21 สิงหาคม 2008, 15:07:42
ถ้า ผม จะขอระบบ ค้นหา ใครมีบ้างนะ แบบว่า

$tags = "บ้าน,ที่ดิน,รถ";
$tags = explode(",", $tags );
$result = mysql_query("......................... "); // เขียนยังไงดีครับ  :P :P :P แบบว่ามีคำคล้ายๆละ นำมาแสดง เลย


ถ้าผมอยาก ให้มันค้นหา แบบ ที่ มีคำว่า บ้าน,ที่ดิน .... โดยใช้ ตัว , แยกผมแยกได้ละนะครับ  :P :P :P

ลองทำเองไม่ work เท่าไหล่  ;D ;D ;D

ทำฟิลด์นั้นๆ เป็น fulltext ก่อน  แก้ใน phpmyadmin ก็ได้ หรือคำสั่ง sql ก็

ALTER TABLE ชื่อตาราง ADD FULLTEXT(ชื่อฟิลด์)

แล้วเวลาค้นก็ง่ายๆ เลย

SELECT * FROM ชื่อตาราง WHERE MATCH(ชื่อฟิลด์) AGAINST('บ้าน,ที่ดิน,รถ');

แบบนี้เลย

แหล่งอ้างอิง (อยากให้อ่านอันล่าง น่าใช้กว่าแบบที่ผมยกตัวอย่างอีก)
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html


:)

oldgame

อ้างถึงจาก: icez ใน 22 สิงหาคม 2008, 00:53:11
งั้นคงต้องจำกัดขอบเขตการ query ล่ะครับ

อาจต้องเพิ่ม where id > xxxx เข้ามาช่วยด้วยอีกหน่อย

ตามที่คุณ icez บอก หมายความว่า หลักในการ order by นี่ มันจะ ดูเงื่อนไข ก่อนที่จะจัดเรียงใช่มั้ยครับ

ถ้าทำยิ่งแคบก็จะช่วยให้ไวขึ้น ถูกมั้ยครับ  :-*
[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] พระล้านนา รวมพระเครื่องเมืองเหนือ

EThaiZone


oldgame

กระจ่างแล้วครับ  :-*

ขอบคุณมากครับผม ต้องกลับไปปรับใหญ่แล้ว  :P
[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] พระล้านนา รวมพระเครื่องเมืองเหนือ

MrWebmonster

- ใช้ criteria มาช่วยกรองจะทำให้ค้นหาได้เร็วขึ้นครับ
- การสร้าง index ใน table ก็ช่วยได้เช่นกันครับ  ::)
รวมเรื่อง สัพเพเหระ ไอที [direct=https://webmonsterth.blogspot.com/]แก้ปัญหาไวรัส[/direct] คอมพิวเตอร์ทิป อินเตอร์เน็ตทิป โค้ด รหัส Ascii [direct=http://www.ezsymbols.com/]สัญลักษณ์facebook[/direct] Messenger LINE Gplus Instagram [direct=http://www.ilovebrowser.com/]แก้ปัญหาเว็บเบราเซอร์[/direct] สู้ๆ น้าาาาา ~

oldgame

#153
วันนี้ได้คำชี้แนะจากพี่เปิ้ล แห่ง appservhosting มาครับ เพราะความบ้าบอของผมเอง

ด้วยว่าฐานข้อมูลของผมไปสร้า่งปัญหาเอาไว้เยอะ แฮะ ๆ :P

จากที่พี่เปิ้ลแนะนำ

อ้างถึง
พี่เปิ้ล : พวก หมวดอะไรพวกนี้
พี่เปิ้ล : เวลา ดึงให้ดึงเป็น key แบบ number
พี่เปิ้ล : a='1' ไม่ต้อง a='manager'  <<< (ไอ้ตรงนี้แหละที่ทำเอาเว็บอืดเป็นเต่าคลานเพราะความบ้าบอของผม :-[)
พี่เปิ้ล : a='1' แบบนี้เลย
พี่เปิ้ล : อะไรที่ where name='xxx';
พี่เปิ้ล : field name ก็ให้ Add Index
พี่เปิ้ล : มันถึงจะไว

เอามาให้ดูไว้เป็นแบบอย่าง เฮ้ย!! ... อย่าเอาเป็นเยี่ยงอย่างนะครับ  :P
[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] พระล้านนา รวมพระเครื่องเมืองเหนือ

icez

การ query ภาษา sql จะทำงานจาก ซ้ายไปขวา บนลงล่าง ครับ
ตาม syntax ของมันน่ะนะ

ตามนี้ครับ

SELECT [field]
FROM

WHERE [condition]
GROUP BY [field]
HAVING [condition]
ORDER BY [field]
LIMIT [start], [count]


เพราะฉะนั้น ถ้าเราจำกัดขอบเขตการค้นหาใน WHERE ก็จะไปมีผลใน ORDER BY ด้วย
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

thenetxx

วันนี้ มาแชร์ฟังชั่นนรก กันมั่งดีกว่า

ฟังชั่นนี้ใช้ดี เป็นศรีแก่ตัว ใช้มั่วระวังหัวจะมีสี(สีแดง) นะค้าบบบ :P


function clonePage($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);       
curl_close($ch);
return $output;
}

echo clonePage('http://blog.aanthe.com');
Develop site but can't develop life
ASIA

pugkung

อ้างถึงจาก: thenetxx ใน 28 สิงหาคม 2008, 10:39:02
วันนี้ มาแชร์ฟังชั่นนรก กันมั่งดีกว่า

ฟังชั่นนี้ใช้ดี เป็นศรีแก่ตัว ใช้มั่วระวังหัวจะมีสี(สีแดง) นะค้าบบบ :P


function clonePage($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);      
curl_close($ch);
return $output;
}

echo clonePage('http://blog.aanthe.com');


อธิบายได้ไหมครับว่า แต่ละบรรทัดคืออะไร ผมยัง งง ๆ  เรื่อง curl อยู่แล้วก็อยากใช้เป็นด้วย
เปิดบอร์ดสอนไหมครับ เอาแบบ basic เลยเอาภาษาพูดง่าย ๆ ก็ดีนะครับ อธิบายแบบบ้าน ๆ เลยผมชอบ  :D

thenetxx

#157
อ้างถึงจาก: pugkung ใน 28 สิงหาคม 2008, 11:00:03
อ้างถึงจาก: thenetxx ใน 28 สิงหาคม 2008, 10:39:02
วันนี้ มาแชร์ฟังชั่นนรก กันมั่งดีกว่า

ฟังชั่นนี้ใช้ดี เป็นศรีแก่ตัว ใช้มั่วระวังหัวจะมีสี(สีแดง) นะค้าบบบ :P


function clonePage($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);      
curl_close($ch);
return $output;
}

echo clonePage('http://blog.aanthe.com');


อธิบายได้ไหมครับว่า แต่ละบรรทัดคืออะไร ผมยัง งง ๆ  เรื่อง curl อยู่แล้วก็อยากใช้เป็นด้วย
เปิดบอร์ดสอนไหมครับ เอาแบบ basic เลยเอาภาษาพูดง่าย ๆ ก็ดีนะครับ อธิบายแบบบ้าน ๆ เลยผมชอบ  :D

กำแทะ


ดูได้ที่
http://th.php.net/manual/en/function.curl-setopt.php

ใน code .ใช้ 1= true, 0= false

หรือจะใช้

// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

ยังงี้ก็ได้ set option โดยใช้ array
Develop site but can't develop life
ASIA

pugkung


rapeedu

อ้างถึงจาก: oldgame ใน 27 สิงหาคม 2008, 15:49:37
วันนี้ได้คำชี้แนะจากพี่เปิ้ล แห่ง appservhosting มาครับ เพราะความบ้าบอของผมเอง

ด้วยว่าฐานข้อมูลของผมไปสร้า่งปัญหาเอาไว้เยอะ แฮะ ๆ :P

จากที่พี่เปิ้ลแนะนำ

อ้างถึง
พี่เปิ้ล : พวก หมวดอะไรพวกนี้
พี่เปิ้ล : เวลา ดึงให้ดึงเป็น key แบบ number
พี่เปิ้ล : a='1' ไม่ต้อง a='manager'  <<< (ไอ้ตรงนี้แหละที่ทำเอาเว็บอืดเป็นเต่าคลานเพราะความบ้าบอของผม :-[)
พี่เปิ้ล : a='1' แบบนี้เลย
พี่เปิ้ล : อะไรที่ where name='xxx';
พี่เปิ้ล : field name ก็ให้ Add Index
พี่เปิ้ล : มันถึงจะไว

เอามาให้ดูไว้เป็นแบบอย่าง เฮ้ย!! ... อย่าเอาเป็นเยี่ยงอย่างนะครับ  :P
ยังงงอยู่ดีครับ คือถ้าผมมี field นึงที่เก็บ text หรือ tag ผมควร set เป็น index ไว้หรือครับ แล้วเวลา query จะต้องทำยังไง

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

ช่วยอธิบายด้วยครับ อยาก optimize ครับ
[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]