EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,518
|
 |
« ตอบ #120 เมื่อ: 24 สิงหาคม 2007, 14:14:18 » |
|
วิธีการทำระบบ Tags ตามแบบฉบับ WEB2.0เนื้อๆ ตามนี้เลย 1. ท่านต้องออกแบบฐานข้อมูลให้มีฟิลด์เก็บ tag เพิ่ม ยกตัวอย่าง id title content tags (อันนี้เราจะใช้เก็บ) 2. ให้เขียนระบบรับข้อมูลแท็กแล้วแปลงออกมาในรูป tag1,tag2,tag3,tag4,tag5 ท่านอาจใช้การ explode แล้วค่อย trim เพื่อดักช่องว่างหน้า/หลัง ก็พอ แล้วตัดสัญลักษณ์พิเศษออกด้วยนะ กันโดน injection หน่อยๆ 3. เวลาเขียน query อ่าน tag ให้เขียนลักษณะนี้ $tags = "แท็กที่ต้องการหา"; $result = mysql_query("select * FROM table_list WHERE tags REGEXP '[[:<  ]".$tags."[[:>  ]' "); สังเกตที่ WHERE tags REGEXP '[[:<  ]".$tags."[[:>  ]' ส่วนนี้จะเป็นส่วนการเรียกแท็กนะครับ เท่าที่เราก็จะได้ระบบ Tags แบบเว็บ 2.0 แล้วครับ ปล. รองรับแท็กชนิดมีช่องว่างได้ด้วยนะ 
|
|
|
บันทึกการเข้า
|
|
|
|
aomnaruk
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 1,245
|
 |
« ตอบ #121 เมื่อ: 24 สิงหาคม 2007, 16:33:06 » |
|
อย่างนี้เว็บปั่นผมก็ถือว่าเป็น WEB2.0 เหมือนกันอะสิ
555
|
|
|
บันทึกการเข้า
|
|
|
|
lowprofile
คนรักเสียว
พลังน้ำใจ: 11
ออฟไลน์
กระทู้: 189
|
 |
« ตอบ #122 เมื่อ: 24 สิงหาคม 2007, 16:48:18 » |
|
ขอบคุณที่เตือนครับคุณ icez 
|
|
|
บันทึกการเข้า
|
ชีวิตนี้น้อยนัก  ๏ พายเถิดพ่ออย่ารั้ง รอพาย จวนตะวันจักสาย ส่องฟ้า ของสดสิ่งควรขาย จักขาด ค่าแฮ ตลาดเลิกแล้วอ้า บ่นอื้นเอาใคร ๚ะ๛ คราวนี้เป็นคราวเงินหมด  ธนาคาร : ไทยพาณิชย์ จำกัด (มหาชน) สาขา : อุดรธานี ชื่อบัญชี : โครงการช่วยชาติโดยหลวงตามหาบัว ญาณสัมปันโน เลขที่บัญชี : 510-2-83957-5
|
|
|
aomnaruk
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 1,245
|
 |
« ตอบ #123 เมื่อ: 26 สิงหาคม 2007, 13:35:33 » |
|
สำหรับบางสคิปบางตัวที่ทำงานเป็นเวลานานๆแต่ขี้เกียจเปิดเครื่องเพื่อรันสคิปทิ้งไว้(เปลืองไฟ)
วิธีแก้ก็เพิ่มบอรรทัดนี้เข้าไปตรงส่วนหัวสคิปครับ
ignore_user_abort(TRUE);
แค่นี้เราก็รันสคิปแค่แปปเดียวแล้วก็ปิดทิ้งได้เลยเพราะมันจะไม่หยุดการทำงานแต่รันตัวเองอยู่ Background ไปเรื่อยจนกว่าจะเสร็จ
|
|
|
บันทึกการเข้า
|
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,518
|
 |
« ตอบ #124 เมื่อ: 27 สิงหาคม 2007, 09:20:15 » |
|
สำหรับบางสคิปบางตัวที่ทำงานเป็นเวลานานๆแต่ขี้เกียจเปิดเครื่องเพื่อรันสคิปทิ้งไว้(เปลืองไฟ)
วิธีแก้ก็เพิ่มบอรรทัดนี้เข้าไปตรงส่วนหัวสคิปครับ
ignore_user_abort(TRUE);
แค่นี้เราก็รันสคิปแค่แปปเดียวแล้วก็ปิดทิ้งได้เลยเพราะมันจะไม่หยุดการทำงานแต่รันตัวเองอยู่ Background ไปเรื่อยจนกว่าจะเสร็จ ขอบคุณครับ ไม่เคยรู้คำสั่งนี้จริงๆ นะเนี่ย 
|
|
|
บันทึกการเข้า
|
|
|
|
tarnroma
ก๊วนเสียว
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 366
|
 |
« ตอบ #125 เมื่อ: 27 สิงหาคม 2007, 13:39:59 » |
|
ignore_user_abort(TRUE);
แหล่มมากคับ  เกี่ยวกับการสืบทอด Value ของ PHP ที่ภาษาอื่นไม่ทำกันคับ <? $value = "Hello"; $word = "value"; $Hello = "Hello World"; echo $$word;//Hello echo "<br>"; echo $$$word;//Hello World ?>
|
|
|
บันทึกการเข้า
|
YES
|
|
|
nineton
ก๊วนเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 369
|
 |
« ตอบ #126 เมื่อ: 03 กันยายน 2007, 03:49:39 » |
|
สอบถามหน่อยคับ <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>dasdasdasd</td> <td>fdsfsd</td> </tr> <tr> <td>dsadasdasd</td> <td>dasdsadasd</td> </tr> </table> ตามโค้ดด้านบนนี้อ่าคับ คือผม ต้องการที่จะ ดึง โค้ดที่อยู่ระหว่าง <table width="100%" border="0" cellspacing="0" cellpadding="0"> กับ </table> มาแสดงอ่าคับก็คือให้มันแสดงแค่ <tr> <td>dasdasdasd</td> <td>fdsfsd</td> </tr> <tr> <td>dsadasdasd</td> <td>dasdsadasd</td> </tr> อ่าคับ ทำไงอ่าคับ ขอบคุณค้าบ
|
|
|
บันทึกการเข้า
|
รับซื้อเว็บไซท์ 10,000 UIP ขึ้นไปประเภท บันเทิง,หนัง,เพลง,เว็บบอร์ด เสนอราคาได้ทาง PM ครับ
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,518
|
 |
« ตอบ #127 เมื่อ: 03 กันยายน 2007, 10:39:34 » |
|
$var = '<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>dasdasdasd</td> <td>fdsfsd</td> </tr> <tr> <td>dsadasdasd</td> <td>dasdsadasd</td> </tr> </table>';
$var = str_replace(array("\r", "\n"), "", $var); preg_match("/<table[^>]*>(.*)<\/table>/", $var , $match); echo $match[1]; ตามนี้ครับ (ผมใช้ PHP5 นะ)
|
|
|
บันทึกการเข้า
|
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,518
|
 |
« ตอบ #128 เมื่อ: 16 กันยายน 2007, 17:49:23 » |
|
นานแล้วไม่ได้อัพเดตบ่อยนัก ใครมีอะไรเล็กๆ น้อยๆ มาแบ่งปันก็ได้นะครับ เพราะไอ้บางสิ่งเวลาอยากใช้ดันหาไม่ค่อยจะเจอ แต่พอจะใช้ที มันอยู่ไหนเนี่ย 555+ ตัวอย่างการใช้ fsockopen ในการส่งข้อมูลแบบ POSTพอดีเคยใช้ทำงานให้ลูกค้าเมื่อก่อน เลยขุดขึ้นมาให้ดูกัน คำเตือน อย่าเอาไปทำอะไรไม่ดีนะ อิๆ เขียนเป็นฟังค์ชั่นใช้งานง่ายๆ นิดเดียว function fsock_post($url, $post) { $parse = parse_url($url); srand((double)microtime()*1000000); $boundary = "---------------------".substr(md5(rand(0,32000)),0,10); // Build the header $header = "POST ".$parse['path']." HTTP/1.0\r\n"; $header .= "Host: ".$parse['host']."\r\n"; $header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";
// attach post vars foreach($post AS $index => $value){ $data2 .="--$boundary\r\n"; $data2 .= "Content-Disposition: form-data; name=\"".$index."\"\r\n"; $data2 .= "\r\n".$value."\r\n"; } $data2 .= "--$boundary--\r\n"; $header .= "Content-length: " . strlen($data2) . "\r\n\r\n";
// Open the connection $fp = fsockopen($parse['host'], 80); // then just fputs($fp, $header.$data2); fclose($fp); } fsock_post(url ที่จะส่ง, ค่าpost mจะส่งในรูป array); ลองเอาไปดูๆ กันนะครับ 
|
|
|
บันทึกการเข้า
|
|
|
|
tenzamak
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 800
ออฟไลน์
กระทู้: 13,984
|
 |
« ตอบ #129 เมื่อ: 16 กันยายน 2007, 18:47:21 » |
|
คือรบกวนพี่ๆลุงๆป้าๆน้าๆอาๆทีครับ คือผมทําเว็บ ฝากรูป  อยู่คือตอนนี้มันอีพไรที่ละรูปเห็นบางเวบอัพได้ทีเป็น10รูปเลยผมต้องทําไงครับถึงทําแบบนี้ได้ แล้วอีกอย่างเห็นบางเวบให้โค๊ดให้เอาโค๊ดไปติดที่เวบของผู้สนใจได้อ่ะครับโดยไม่ต้องเข้าผ่านเว็บเราไม่ทราบว่าเขียนยังไงครับ เว็บนี้ครับ uppicz.info ไม่ได้ตั้งใจโปรโมทนะครับแค่ต้องการให้รู้ว่าเวบเป็นไงเฉยๆเพื่อจําเป็นต้องใช้
|
|
« แก้ไขครั้งสุดท้าย: 12 ตุลาคม 2007, 11:41:54 โดย tenzamak »
|
บันทึกการเข้า
|
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,518
|
 |
« ตอบ #130 เมื่อ: 16 กันยายน 2007, 19:11:01 » |
|
อีกบทความละกัน แถมแบบเรียลไทม์ + ไม่ค่อยจะเกี่ยวกะ php ก่อน/หลังจะเป็นคำตอบให้ท่านอ่านเผื่ออวดภูมิตัวเอง (หรือเปล่า )19.06 ผมเปิดพี่กูค้นหาข้อมูล ลองค้นไปเรื่อยๆ 19.08 ผมเจอเว็บหนึ่งด้วยคีย์ upload file mass php 19.09 เจอหน้าหลักของข้อมูลที่ต้องการ http://www.devarticles.com/c/a/PHP/Creating-a-MultiFile-Upload-Script-in-PHP/1/ 19.11 เข้าใจข้อมูลทั้งหมด แต่เนื้อหาอธิบายยากพอควรเลยมาแปะลิงค์แทน + โพสว่า ลองไปอ่านนี้ดูนะครับ http://www.devarticles.com/c/a/PHP/Creating-a-MultiFile-Upload-Script-in-PHP/1/ มันใช้การเรียกตัวแปรระบบ ถ้าอัพไฟล์มีกี่ไฟล์ในตอนนั้น มันจะซ้อนเป็นอาเรย์  สรุป ไม่มีไอ้บ้าห้าร้อยที่ไหนรู้ตั้งแต่สากกะเบือยันเรือรบครับ ต่อให้เทพแค่ไหนก็เป็น "คนที่ไม่รู้" มาก่อน ผมเองในmsn 4 ใน 10 ผมต้องค้นหาใหม่เลย เพราะไม่รู้ ลำบากเหมือนกันเมื่อโดนถูกถาม เหอๆ
|
|
|
บันทึกการเข้า
|
|
|
|
tenzamak
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 800
ออฟไลน์
กระทู้: 13,984
|
 |
« ตอบ #131 เมื่อ: 16 กันยายน 2007, 19:15:50 » |
|
งงครับพี่ท่านคําตอบเหมือนเคืองผมนิดๆไม่ทราบว่าผมถามไรผิดหรอครับงงแล้วอะไรอวดภูมิ อ่านภาษาอังกฤษมะออก
|
|
|
บันทึกการเข้า
|
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,518
|
 |
« ตอบ #132 เมื่อ: 16 กันยายน 2007, 19:25:11 » |
|
งงครับพี่ท่านคําตอบเหมือนเคืองผมนิดๆไม่ทราบว่าผมถามไรผิดหรอครับงงแล้วอะไรอวดภูมิ อ่านภาษาอังกฤษมะออก
อ้อ ผมไม่ได้เคืองนะครับ ผมไม่ใช่พวกไร้เหตุผลนะ เพียงแต่คำพูดลักษณะนี้ มันสื่อถึงสิ่งที่ผมอยากบอกได้มากที่สุดครับ ผมพูดถึงพวกถามได้ตลอด ถามมันทุกอย่าง (คุณ tenzamak ก็ทำโฮสติ้งนิ คงต้องเคยเจอ) เจอแบบนี้บ่อยๆ ผมแทบจะปิด msn ทิ้ง  (นอกเรื่องไปโข  )
|
|
|
บันทึกการเข้า
|
|
|
|
guy852
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 28
ออฟไลน์
กระทู้: 3,090
|
 |
« ตอบ #133 เมื่อ: 16 กันยายน 2007, 19:41:10 » |
|
:-\ อย่าไปเชื่อที่คุณโจ้บอกว่ามีเหตุผล :-\
>>ทีเราบอกพี่แกเป็นชาวม่วงพี่แกยังไม่ยอมรับเลย มีเหตุผลไหมละ<<
|
|
|
บันทึกการเข้า
|
|
|
|
cnnon
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 261
|
 |
« ตอบ #134 เมื่อ: 28 กันยายน 2007, 19:43:57 » |
|
ไม่มีมาแชร์ครับ แต่มาถามขอความรู้หน่อย PHP มีคำสั่งข้าม error หรือเปล่าครับ เช่นตัวอย่างของ asp on error resume next แล้ว ของ php มันเขียนไงครับ มีคำสั่งนี้หรือเปล่า
|
|
|
บันทึกการเข้า
|
|
|
|
mixture
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 73
ออฟไลน์
กระทู้: 1,844
|
 |
« ตอบ #135 เมื่อ: 01 ตุลาคม 2007, 04:36:52 » |
|
ไม่ค่อยรู้เรื่อง php หรอกครับ แต่อยากแชร์บ้าง แหะ ๆ  วิธีทำ redirect page แบบเว็บ anony อะไรซักอย่าง จำ url ไม่ได้แล้ว  <? $url = ''; while (list($var,$val) = each($HTTP_GET_VARS)) $url .= "&$var=$val"; $i = strpos($url, "&url="); if ($i !== false) $url = substr($url, $i + 5); print("<html><head><meta http-equiv=refresh content='0;url=$url'></head><body> "); print("<table border=0 width=100% height=100%><tr><td><h2 align=center>Redirecting you to:<br /> "); print("$url</h2></td></tr></table></body></html> "); ?> ใช้ php เป็นตัวรับค่าและรีเฟรชค่า parameter เพื่อส่งต่อไปยังอีกเว็บหนึ่งเพื่อไม่ให้สามารถเช็ค refer ได้ สมมุติถ้าเซพโค๊ดนี้ชื่อ redirect.php การใช้งาน ก็ต้องให้ลิ้งอยู่ในรูปแบบ a.com/redirect.php?url=www.ลิ้งปลายทาง.com เอาไว้แก้ไขกับเว็บบอร์ดได้ โดยเพิ่ม redirect.php?url=<a>..ตัวแปร...</a> ใน code ของบอร์ด content='0; ระยะเวลาในการรอรีเฟรช ใส่ 0 ถ้าต้องการให้ส่งต่อทันที
|
|
|
บันทึกการเข้า
|
|
|
|
nuijang24
Newbie
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 21
|
 |
« ตอบ #136 เมื่อ: 10 ตุลาคม 2007, 10:16:51 » |
|
ขอแชร์ บ้างซักนิดนะครับ เรื่องการรับส่งค่า ระหว่าง window หลัก และ popup และการเรียกใช้ parent ระหว่าง iframe กับ main iframe ในเรื่องนี้ จะทำดังนี้ ผมจะสร้าง ฟอร์ม กรอกข้อมูล ชื่อ และนามสกุล ขึ้นมา จากนั้นจะมีปุ่ม เพื่อเปิดหน้า popup แสดงรายชื่อทั้งหมดที่มี จากนั้นหากคลิกเลือกรายการที่อยู่ในหน้า popup แล้ว รายชื่อในหน้าต่าง popup นั้นก็จะส่งค่ากลับไปยัง window หลัก บน textbox ชื่อ และนามสกุลทันที 1. มีไฟล์ window หลัก เป็นฟอร์ม ที่มี textbox 2 ตัวคือ 1 ชื่อ , 2 นามสกุล จากนั้นจะมีปุ่ม link สำหรับ เปิดหน้าต่าง popup เพื่อแสดง รายชื่อที่เป็นรายการใน List สำหรับ ค้นหา รายชื่อทั้งหมด จากฐานข้อมูล 2. มีไฟล์ window รอง เป้น popup สำหรับ แสดงรายชื่อทั้งหมดที่มีอยู่ และ มีช่อง iframe เพื่อเรียกไฟล์ list member ขึ้นมา 3. มีไฟล์ listmember ซึ่งอาจจะวน loopจากฐานข้อมูลขึ้นมาก็ได้ โคด หน้า window หลัก<HTML> <HEAD> <TITLE> New Document </TITLE> <script language="javascript"> <!-- // ฟังชั่นสำหรับ เปิดหน้าต่าง popup function winopen(theURL,winName,width,height,scollbar) { //v2.0 var setfocus; setfocus = window.open(theURL,winName,'resizable=yes,scrollbars='+ scollbar +',width='+ width +',height='+ height +',top=0,left=0'); setfocus.focus(); } //--> </script> <meta http-equiv="Content-Type" content="text/html; charset=tis-620"></HEAD>
<BODY> <form name="form1"> <table width="500" border="0" bgcolor="#cccccc" cellpadding="2" cellspacing="1"> <tr> <td bgcolor="#eeeeee">ชื่อ</td> <td bgcolor="#eeeeee"><input type="textbox" name="txtname"> <a href="javascript:winopen('popup01.html','open1',500,200,0)">find..</a></td> </tr> <tr> <td bgcolor="#eeeeee">นามสกุล</td> <td bgcolor="#eeeeee"><input type="textbox" name="txtsurname"></td> </tr> </table> </form> </BODY> </HTML>
โคดหน้าต่าง popup <HTML> <HEAD> <TITLE> New Document </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=tis-620"></HEAD>
<BODY> <table width="500" border="0" bgcolor="#cccccc" cellpadding="2" cellspacing="1"> <tr> <td bgcolor="#eeeeee" valign="top"><h3>Link รายการกลับ</h3><br> <a href="javascript:fram.returnTextBox(' ');">-- Clear TextBox --</a><br></td> <td bgcolor="#eeeeee"><iframe name="fram" src="popup01_link.html" frameborder="0" scrolling="no" height="100%" width="350" marginwidth="0" marginheight="0" ></iframe></td> </tr> </table> </BODY> </HTML>
โคดหน้า Iframe แสดงรายชื่อสมาชิก <HTML> <HEAD> <TITLE> New Document </TITLE> <script language="javascript"> <!-- function returnTextBox(val){ var result = val.split(" "); // ตัดคำ ชื่อ และนามสกุลออก var txt1 = parent.window.opener.form1.txtname; // textbox ของ opener ตัวที่ 1 จ้า var txt2 = parent.window.opener.form1.txtsurname; // textbox ของ opener ตัวที่ 2 จ้า txt1.value=result[0]; // กำหนด ค่า value ลงไป ใน textbox 1 txt2.value=result[1]; // กำหนด ค่า value ลงไป ใน textbox 2 parent.window.close(); } //--> </script> <meta http-equiv="Content-Type" content="text/html; charset=tis-620"></HEAD>
<BODY> <!-- ส่วนนี้ สามารถ วน Loop จากดาต้าเบส ได้ครับ --> <a href="javascript:returnTextBox('สราวุธ จงเจริญมั่นคง');">สราวุธ จงเจริญมั่นคง</a><br> <a href="javascript:returnTextBox('หิรัญ ศรีสุพรรณ');">หิรัญ ศรีสุพรรณ</a><br> <a href="javascript:returnTextBox('สุรเดช ศรีเจริญ');">สุรเดช ศรีเจริญ</a> <!-- ============================== --> </BODY> </HTML>
|
|
|
บันทึกการเข้า
|
|
|
|
pugkung
Verified Seller
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 196
ออฟไลน์
กระทู้: 2,681
|
 |
« ตอบ #137 เมื่อ: 10 ตุลาคม 2007, 10:21:40 » |
|
ไม่ทราบว่าใครพอมี สคริปทำ sub domain บ้างครับ
|
|
|
บันทึกการเข้า
|
|
|
|
hurahura
สมุนแก๊งเสียว
พลังน้ำใจ: 20
ออฟไลน์
กระทู้: 868
|
 |
« ตอบ #138 เมื่อ: 10 ตุลาคม 2007, 19:13:02 » |
|
PHP มีวิธีหน่วงเวลาการทำงานหรือเปล่าครับ
อย่างเช่นเราจะสั่ง print เลข 10 ถึง 0 แต่เราไม่ได้ให้มัน ออกมาทีเดียว แต่ให้มันออกมาแบบ print 10 แล้วเว้นไป 1 วิ แล้ว print 9 เว้นอีก 1วิ แล้ว print 8 ไปจนถึง 0 ถึงจบการทำงาน
ทำได้หรือเปล่าครับ
|
|
|
บันทึกการเข้า
|
|
|
|
แบบนี้ไม่ต้องสืบ
ก๊วนเสียว
พลังน้ำใจ: 128
ออฟไลน์
กระทู้: 315
|
 |
« ตอบ #139 เมื่อ: 10 ตุลาคม 2007, 19:31:19 » |
|
PHP มีวิธีหน่วงเวลาการทำงานหรือเปล่าครับ
อย่างเช่นเราจะสั่ง print เลข 10 ถึง 0 แต่เราไม่ได้ให้มัน ออกมาทีเดียว แต่ให้มันออกมาแบบ print 10 แล้วเว้นไป 1 วิ แล้ว print 9 เว้นอีก 1วิ แล้ว print 8 ไปจนถึง 0 ถึงจบการทำงาน
ทำได้หรือเปล่าครับ
http://au2.php.net/sleep 
|
|
|
บันทึกการเข้า
|
|
|
|
|
หน้า: 1 ... 5 6 [7] 8 9 ... 12 ขึ้นบน |
|