หัวข้อ: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 10 กุมภาพันธ์ 2018, 14:45:54 สวัสดีครับ
ได้สคริป php ใว้แสดงรูปที่เก็บอยู่ในเว็บมาครับ เวลาใช้งานมันจะโหลดภาพทั้งหมดที่มีออกมาแสดงเลยนะ = ช้า+เปลืองแบนด์วิชท์มาก จะต้องแก้ไขเพื่มเติมตรงไหนให้แบ่งออกมาเป็นหน้าล่ะประมาณ6-8ภาพครับ รวมถึงให้แสดงภาพใหม่สุดก่อนไล่ไปหาเก่าด้วย ขอความช่วยเหลือด้วยครับ :wanwan017: :wanwan023: โค๊ด: <?php หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: ThaNaButS ที่ 10 กุมภาพันธ์ 2018, 17:24:16 ถ้าเป็นผมผมจะทำไฟล์ php เพิ่มข้อมูลรูปภาพเวลามีรูปภาพใหม่ลงฐานข้อมูล
แล้วค่อยเรียกจากฐานข้อมูลไปแสดงจะแบ่งหน้าหรือจะเรียงลำดับอะไรก้ทำตอนนี้ ผมว่าที่ช้าน่าจะเพราะมันหารูปทุกครั้งที่โหลด glob หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 10 กุมภาพันธ์ 2018, 18:14:46 หน้าต่างเก็บรูปผมเอามาจากที่นี่ครับ https://github.com/lfiore/upld/ ใช้ php+ฐานข้อมูล
แต่เขาไม่มีหน้าสรุปรวมให้ admin เข้าไปดู ผมเลยไปหาสคริปด้านบนมานะครับ ถ้าอย่างนั้นทำอย่างไรให้ดึงรูปอ้างอิงดาต้าเบส,แบ่งหน้า,ใหม่-เก่า จากสคริปชุดนี้ได้ครับ :wanwan017: ปล.หรือมีตัวอื่นแนะนำครับ (user upload+bb code / admin View+DELETE ) หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: ThaNaButS ที่ 10 กุมภาพันธ์ 2018, 19:21:18 เท่าที่ผมดูคร่าวๆ สรุปได้ดังนี้ สคิปที่คุณเอามาใช้เข้าเก็บลงฐานข้อมูลอยู่แล้ว
ลองเข้าไปดูในฐานข้อมูล ชื่อตาราง images ฟิวส์ id คือชื่อรูป, ext คือนามสกุลรูป, time คือเวลาที่อัพโหลด ก็แค่สร้าง php ดึงจากฐานข้อมูลตาราง images เรียงลำดับโดย order by `time` desc หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: hangmann2 ที่ 10 กุมภาพันธ์ 2018, 19:27:40 ลองดูครับ
หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 10 กุมภาพันธ์ 2018, 20:31:29 666+ปัญหาของคนไม่เป็นเลยนะนี้ :wanwan004:
สคริปเขามีระบบสมาชิกให้สามารถดูรูปที่ตัวเองอัพได้ก็จริง แต่ก็ดูได้แค่ที่ตัวเองอัพเท่านั้น(แม้แต่ admin) *จะลองหาทางแก้ให้ admin ดูได้ทุกรูปดูครับ ส่วนจะให้แสดงผล perpage / order by `time` desc นี้จบเลยผม :wanwan009: หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: romance69 ที่ 10 กุมภาพันธ์ 2018, 21:16:31 ที่ admin ดูไม่ได้ เป็นเพราะ table = images > col = user มันไม่ตรงกันละมั่งครับ
หรือสคริปมันต้องเขียนหน้า page account เพิ่มมาด้วยหรือเปล่าจึงจะดูได้ว่า user ไหนอัพรูปอะไรไปบ้าง หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 10 กุมภาพันธ์ 2018, 22:40:29 ในหน้า account แก้ทำให้เรียงรูปใหม่/เก่าได้แล้วขอบคุณครับ
เรียงลำดับโดย order by `time` desc ทำให้เรียงรูปใหม่/เก่าได้แล้วขอบคุณครับ จากนั้นผมลองแก้ WHERE `user` = ? AND `removed` = "0" ให้เหลือเพียง WHERE `removed` = "0" (ตอนแรกลบออกหมด เทสลบรูปฉไหนยังแสดงชื่ออยู่ :P) ทำให้ดูได้ทุกรูปจริงแต่ - รายการรูปในหน้านี้ถ้าเป็นสมาชิกอัพรูปจะย่อก็บใว้ที่ thumb ถ้าบุคคลทั่วไปอัพ = ไม่ย่อ = ไม่มีรูปมาแสดง = แสดงเป็นตัวหนังสือเฉยๆ :-X อย่างนี้ต้องไปทำให้สร้างรูปย่อทุกกรณีเลยชิมินี่ - เหลือทำอย่างใรให้แสดง perpage ครับ หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 11 กุมภาพันธ์ 2018, 14:59:25 รายงานผล
- ทำให้ดูได้ทุกรูปได้โดยไม่ต้องใช้สคริป glob = OK - ทำให้เรียงภาพใหม่มาก่อน order by `time` desc = OK - ให้ทำรูปย่อทุกรูป !isset($_SESSION['user']) = OK คงเหลือ ทำอย่างไรให้แบ่งหน้าครับ :wanwan009: หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภา& เริ่มหัวข้อโดย: ThaNaButS ที่ 11 กุมภาพันธ์ 2018, 15:09:02 รายงานผล - ทำให้ดูได้ทุกรูปได้โดยไม่ต้องใช้สคริป glob = OK - ทำให้เรียงภาพใหม่มาก่อน order by `time` desc = OK - ให้ทำรูปย่อทุกรูป !isset($_SESSION['user']) = OK คงเหลือ ทำอย่างไรให้แบ่งหน้าครับ :wanwan009: เอาฟังก์ชั่นจากที่นี้มาใช้ http://www.thaicreate.com/community/php-mysql-pagination.html ข้างหลัง order by `time` desc เอานี้ใส่เข้าไป limit $Page_Start , $Per_Page หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 11 กุมภาพันธ์ 2018, 16:40:49 upld เขาแยกสคริปการทำงานออกเป็น 2ส่วนนะครับ
1.account.php ลิ้งดาต้าเบส+คัดกรอง (order by `time` desc อยู่ในนี้) โค๊ด: <?php 2.inc/account.php แสดงรูปทั้งหมดจากที่ข้อ1.กรอง (แสดงรูปยาวเป็นหางว่าว) :wanwan022: โค๊ด: <?php หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภา& เริ่มหัวข้อโดย: ThaNaButS ที่ 11 กุมภาพันธ์ 2018, 20:08:40 แยกสองส่วนก็ทำได้ครับ include มันก็แค่ทำให้มันจัดการได้ง่ายขึ้นแค่นั้นเอง ใจเย็นลองค่อยๆดูครับ
1. สร้างไฟล์ใหม่ paginator.php ข้างในก็อปโค๊ดใน class Paginator มาใส่ 2. (account.php) เรียกใช้งาน class Paginator โค๊ด: require('common.php'); 3. (account.php) จัดการ limit ซะ แทนที่ $images = mysqli_prepare($db, 'SELECT `id`, `ext`, `time` FROM `images` WHERE `removed` = "0" ORDER BY `time` desc'); //ORDER BY `time` ASC' โค๊ด: $strSQL = "SELECT `id`, `ext`, `time` FROM `images` WHERE `removed` = "0""; 4. (inc/account.php) ส่วนแสดงผล html ใส่โค๊ดที่ต้องการให้แสดงลิงก์หน้า โค๊ด: <br> ปล. ผมไม่แน่ใจว่าจะใช้ได้ไหมเพราะเป็นคำสั่ง sql คนละแบบแต่ก็ประมาณนี้ ถ้าไม่ได้ก็ลองเปลี่ยนคำสั่ง sql ใหม่ ผมไม่ได้ลอง ผมว่าหาสคิปใหม่ที่มีระบบครบน่าจะเหมาะกว่า หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: athikom ที่ 11 กุมภาพันธ์ 2018, 21:05:02 :wanwan020:
หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 11 กุมภาพันธ์ 2018, 21:54:40 :o
แก้แล้วเว็บนี้สายขาวจริง(ขาวทั้งหน้าจอเลย) :wanwan020: ขอบคุณกำลังใจครับหัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: infamous ที่ 12 กุมภาพันธ์ 2018, 00:00:09 PHP pagination script ร่วมกับ mysqli นะครับ
credit: https://www.itoffside.com/php-pagination-example-using-mysqli-database/ สำหรับสายโหดขึ้นมาหน่อย มีความรู้เรื่อง oop อยากจะเขียน class เองบ้างก็มีให้ลองครับ https://code.tutsplus.com/tutorials/how-to-paginate-data-with-php--net-2928 หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: ThaNaButS ที่ 12 กุมภาพันธ์ 2018, 00:38:35 :o แก้แล้วเว็บนี้สายขาวจริง(ขาวทั้งหน้าจอเลย) :wanwan020: ขอบคุณกำลังใจครับงั้นก็ขอโทษด้วยครับ ที่ทำให้เสียเวลา ผมคงไม่เก่ง หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 12 กุมภาพันธ์ 2018, 10:35:42 งั้นก็ขอโทษด้วยครับ ที่ทำให้เสียเวลา ผมคงไม่เก่ง ชิวๆสายฟรีครับ :] เสียเวลาไปกับการเรียนรู้+ได้ประสบการณ์ ดีกว่าปล่อยผ่านไปเฉยๆครับ :wanwan019: หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: thanakorn69 ที่ 12 กุมภาพันธ์ 2018, 12:38:23 ลองดูครับ
หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 12 กุมภาพันธ์ 2018, 19:17:14 ไปเจอเขาใช้คำสั่ง LIMIT 1 เพื่อแสดงข้อมูลล่าสุด / ลองเอามาใส่ของเราให้เป็น 10 รูปล่าสุดดู (order by `time` desc LIMIT 10) ใช้ได้สมบูรณ์ซะงั้น :wanwan002:
รายงานผล - แสดงเพียง 10 รูปล่าสุดเท่านั้น = OK- ทำให้ดูได้ทุกรูปได้โดยไม่ต้องใช้สคริป glob = OK - ทำให้เรียงภาพใหม่มาก่อน order by `time` desc = OK - ให้ทำรูปย่อทุกรูป !isset($_SESSION['user']) = OK คงเหลือ ทำอย่างไรให้แบ่งหน้าครับ :wanwan009: + คิดต่อไปอีกว่าจะต้องทำอย่างไรหรือใช้คำสั่งว่าอะไรครับให้แสดงรูปลำดับที่ 11-20 ได้นะครับ :wanwan016: ลองใช้เป็น (order by `time` desc BETWEEN 11 and 20 ) แล้วไม่ได้นะครับ :wanwan044: หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภา& เริ่มหัวข้อโดย: romance69 ที่ 13 กุมภาพันธ์ 2018, 00:36:06 ไปเจอเขาใช้คำสั่ง LIMIT 1 เพื่อแสดงข้อมูลล่าสุด / ลองเอามาใส่ของเราให้เป็น 10 รูปล่าสุดดู (order by `time` desc LIMIT 10) ใช้ได้สมบูรณ์ซะงั้น :wanwan002: $page = isset($_GET['page'])? (int) $_GET['page'] : 0;รายงานผล - แสดงเพียง 10 รูปล่าสุดเท่านั้น = OK- ทำให้ดูได้ทุกรูปได้โดยไม่ต้องใช้สคริป glob = OK - ทำให้เรียงภาพใหม่มาก่อน order by `time` desc = OK - ให้ทำรูปย่อทุกรูป !isset($_SESSION['user']) = OK คงเหลือ ทำอย่างไรให้แบ่งหน้าครับ :wanwan009: + คิดต่อไปอีกว่าจะต้องทำอย่างไรหรือใช้คำสั่งว่าอะไรครับให้แสดงรูปลำดับที่ 11-20 ได้นะครับ :wanwan016: ลองใช้เป็น (order by `time` desc BETWEEN 11 and 20 ) แล้วไม่ได้นะครับ :wanwan044: (order by `time` desc limit $page, 10) หรือแบบดิบๆ (order by `time` desc limit 11, 10) อธิบาย 11 คือ เริ่มตั้งแต่รายการ ที่ 11 10 คือ จำนวนที่ต้องการแสดงรายการ ยกตัวอย่างแสดง 10 รายการ หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภา& เริ่มหัวข้อโดย: minmono ที่ 13 กุมภาพันธ์ 2018, 10:12:23 ขอบคุณครับ :-* :wanwan017:
$page = isset($_GET['page'])? (int) $_GET['page'] : 0; (order by `time` desc limit $page, 10) หรือแบบดิบๆ (order by `time` desc limit 11, 10) อธิบาย 11 คือ เริ่มตั้งแต่รายการ ที่ 11 10 คือ จำนวนที่ต้องการแสดงรายการ ยกตัวอย่างแสดง 10 รายการ แถมยังช่วยชี้แจงอีกว่าเลขตัวแรก,ตัวหลังคืออะไร (เคยลอง limit 0, 5 / limit 0, 10 โดยไม่รู้ผลลัพธ์ :P) และแล้วก็สิ้นสุดโครงงานเล็กๆโครงงานหนึ่ง :wanwan003: :wanwan017: :wanwan017: :wanwan017: ขอขอบคุณอีกครั้งในทุกๆคำตอบจะใช้ได้หรือไม่ได้นั้นไม่เป็นไรครับอย่างน้อยก็ยังดีกว่าตอบว่า"ไม่มีใครว่างพอ ที่จะทำตามสิ่งที่คุณขอมา" :-X / The End. หัวข้อ: Re: PHP เขียนยังไงให้แบ่งหน้าแสดงรูป+เรียงภาพใหม่สุดมาก่อนครับ เริ่มหัวข้อโดย: minmono ที่ 13 กุมภาพันธ์ 2018, 13:16:51 โค๊ด: $images = mysqli_prepare($db, 'SELECT `id`, `ext`, `time` FROM `images` WHERE `removed` = "0" ORDER BY `time` desc limit $page, 10 ' ); |