ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingถามเรื่อง การดึงข้อมูลจาก ฐานข้อมูลมูล จำนวนมากๆ แล้วมันไม่ตัดขึ้นบรรทัดใหม่
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ถามเรื่อง การดึงข้อมูลจาก ฐานข้อมูลมูล จำนวนมากๆ แล้วมันไม่ตัดขึ้นบรรทัดใหม่  (อ่าน 10392 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Kukujang
คนรักเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 120



ดูรายละเอียด
« เมื่อ: 17 กุมภาพันธ์ 2009, 22:01:34 »


คือประมานว่า

พอดึงข้อมูล ข้อความจำนวนมากๆ แล้วเอามาแสดง
มันไม่ยอมตัดขึ้นบรรทัดใหม่ครับ

มันกลับต่อกันเป็นแถวยาวไปเลย ทำให้รูปขนาดเว็บที่กำหนดไว้
ไม่เป็นไปตามที่กำหนดไว้

เช่น

ในฐานข้อมูลมีข้อมูลดังนี้
123456789123456789

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

(ไม่รู้ว่า อธิบายถูกไหม)ช่วยแนะนำทีครับ
บันทึกการเข้า
absolutex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 516



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 17 กุมภาพันธ์ 2009, 23:33:50 »

ใส่ค่า width ไว้จิครับ รึป่าวนะ  Cheesy
ex 500px
บันทึกการเข้า
Kobsoft
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 255
ออฟไลน์ ออฟไลน์

กระทู้: 2,574



ดูรายละเอียด
« ตอบ #2 เมื่อ: 17 กุมภาพันธ์ 2009, 23:58:44 »

 Embarrassed ...อิอิ

มันเปนงี้นะวัยรุ่น...คือปกติ content มันจะตัดคำขึ้นบรรทัดใหม่ให้อยู่แล้วไม่ว่าจะใช้ table หรือ div แต่ก็มีกรณีศึกษาปัญหาอยู่ว่า เช่นพวกเกรียนมันชอบตอบกระทู้ submit ข้อความแบบ  แสดดดดดดดดดดดดดดดดดดดดดดดดดดดดด ยาวๆ งี้ ทำให้วัยรุ่นเซ็งประจำ ด้วย character ที่ไม่เว้น space มันจะพาลทำให้เขตข้อมูลยืด สำหรับคนใช้ table ก็งี๊ดดด ทันที พอเทพหน่อยมาใช้ div จะหมดปัญหา เพราะมันสั่งให้ไม่ยืด หรือซ่อนส่วนเกินได้ด้วยการใช้ CSS  {overflow:hidden} แต่ถึงอย่างไรก็ตามแต่ มีหลายวิธีมาแนะนำแก้ขัด

การแก้ปัญหาด้วย PHP

โค๊ด:
<? echo wordwrap($TEXT, 60, "\n", true); ?>

60 คือจำนวน character ที่เรากะว่าให้มันพอดีกับความกว้างของเขตข้อมูลงับ กรณีใส่ข้อความปกติแบบสุภาพชนทั่วไปที่เขาทำกัน มันก็จะเ้ว้นให้ปกติไม่ซีเรียสกับ อาิิกิวเมนต์ 60 ตัวอักษรนี้ แต่ถ้าเมื่อใดที่ยิงโพสต์แบบพวกเศษมนุษย์ทั้งหลายมันก็จะทำงานด้วยการยอมให้ character ที่ติดกันยาวได้ไ่ม่กิน 60 ตัวอักษร ถ้าเกินมันจะตัดขึ้นบรรทัดใหม่ให้ อยากรู้อากิวเมนต์เพิ่มเติมเชิญ www.php.net

แก้ปัญหาด้วย CSS DIV

โค๊ด:
<style>
.contentbox {width:500px; overflow:hidden;}
</style>

<div class="contentbox"><? echo"$TEXT"; ?></div>

หรือถ้าจะบอกว่าใช้ Table ล่ะทำไง ก็เอา DIV ซ้อนใน Table อีกที แบบนี้

โค๊ด:
<style>
.contentbox {width:500px; overflow:hidden;}
</style>

<table>
  <tr>
    <td><div class="contentbox"><? echo"$TEXT"; ?></div></td>
  </tr>
</table>

ส่วนมากเขาจะใช้ DIV กันนะ ไว้ปราบเกรียน ข้อความไหนมันยิงเลยขอบมา ก็ hidden ออกไป

ค่าครู แป๊ปซี่ ป๋องนึงเยย.... ให้ไว
บันทึกการเข้า
Kukujang
คนรักเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 120



ดูรายละเอียด
« ตอบ #3 เมื่อ: 18 กุมภาพันธ์ 2009, 07:10:24 »

ขอบคุณหลายๆครับ

วิธีที่ 2 ไปลองทำแล้วครับ ผลก็โอเคครับ

แต่วิธีที่ 1 ยังทำไม่ได้ครับ
บันทึกการเข้า
RaulGonzales
สมุนแก๊งเสียว
*

พลังน้ำใจ: 22
ออฟไลน์ ออฟไลน์

กระทู้: 721



ดูรายละเอียด
« ตอบ #4 เมื่อ: 18 กุมภาพันธ์ 2009, 08:10:51 »

ขอถามต่อเลยนะครับ ถ้าเกิดเราเก็บข้อมูลที่มาจาก textarea ลง database เเล้วเรียกมันออกมา มันจะเเสดงเเบบเป็น string ติดๆกันนะครับ ทำไงให้มันเเสดงเเบบเช่นเราตอบกระทู้เเล้วกด enter มันก็เก็บข้อมูลเเล้วเเสดงตามที่เราเก็ยนะครับ

เช่นผมพิมพ์

อ้างถึง
11111113


555555

555

เวลาผม query เเล้วมันจะได้
อ้างถึง
11111113555555555

ผมอยากให้มันเเสดงเเบบเเรกนะครับ
บันทึกการเข้า

ลงประกาศ ซื้อ,ขาย,เช่า,บ้าน,คอนโด,ที่อยู่ กับ www.properlive.com
7
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 1,353



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 18 กุมภาพันธ์ 2009, 08:37:25 »

ใช้ nl2br
บันทึกการเข้า

Kukujang
คนรักเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 120



ดูรายละเอียด
« ตอบ #6 เมื่อ: 18 กุมภาพันธ์ 2009, 09:04:44 »


ปัญหาเกิดอีกแล้วครับ

คือใช้ wordwrap แล้วภาษาไทยที่ใช้ มันมีกล่องสี่เหลี่ยมแทรกๆมาด้วยครับ
บันทึกการเข้า
Kobsoft
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 255
ออฟไลน์ ออฟไลน์

กระทู้: 2,574



ดูรายละเอียด
« ตอบ #7 เมื่อ: 18 กุมภาพันธ์ 2009, 09:34:08 »

ขอถามต่อเลยนะครับ ถ้าเกิดเราเก็บข้อมูลที่มาจาก textarea ลง database เเล้วเรียกมันออกมา มันจะเเสดงเเบบเป็น string ติดๆกันนะครับ ทำไงให้มันเเสดงเเบบเช่นเราตอบกระทู้เเล้วกด enter มันก็เก็บข้อมูลเเล้วเเสดงตามที่เราเก็ยนะครับ

เช่นผมพิมพ์

อ้างถึง
11111113


555555

555

เวลาผม query เเล้วมันจะได้
อ้างถึง
11111113555555555

ผมอยากให้มันเเสดงเเบบเเรกนะครับ



สมมุติ textarea ของคุณชื่อ

โค๊ด:
<textarea name="detail" rows="0" cols="0" class="textarea"></textarea>

หลังจาก submit ไปแล้วให้แปลงเปนแบบนี้งับ

โค๊ด:
$_POST[detail] = str_replace("\n", "<br />\n", "$_POST[detail]");

แล้วจะเก็บลง db หรือว่าจะ echo ออกมาก็จะเว้นบรรทัดให้เหมือนที่ใส่ลงไปทุกประการ
บันทึกการเข้า
Kobsoft
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 255
ออฟไลน์ ออฟไลน์

กระทู้: 2,574



ดูรายละเอียด
« ตอบ #8 เมื่อ: 18 กุมภาพันธ์ 2009, 09:36:15 »


ปัญหาเกิดอีกแล้วครับ

คือใช้ wordwrap แล้วภาษาไทยที่ใช้ มันมีกล่องสี่เหลี่ยมแทรกๆมาด้วยครับ

 Embarrassed capture ภาพมาโชว์หน่อยงับ
บันทึกการเข้า
Kukujang
คนรักเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 120



ดูรายละเอียด
« ตอบ #9 เมื่อ: 18 กุมภาพันธ์ 2009, 09:56:35 »



นี่ครับ เป็นสี่เหลี่ยมๆ
บันทึกการเข้า
Kobsoft
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 255
ออฟไลน์ ออฟไลน์

กระทู้: 2,574



ดูรายละเอียด
« ตอบ #10 เมื่อ: 18 กุมภาพันธ์ 2009, 10:30:45 »

 Embarrassed  ใช้ utf-8 ป่ะ ปรับดังนี้นะ

1. ประกาศ encoding ภาษาในแท็ก head แบบนี้งับ

โค๊ด:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

2. save file โดยเลือก encoding เป็น utf-8 งับ (*ห้ามใช้ notepad) ให้ใช้ editplus งับ เวลา save ตอนใส่ชื่อไฟล์ เลือกช่องที่เขียนว่า Convertor เลือกเป็น UTF-8

3. ใน db เข้า phpmyadmin ไปปรับฟิลด์ encoding ให้เป็น utf8_unicode_ci

4. ที่คำสั่ง connect กับ db เพิ่ม query นี้ลงไป

โค๊ด:
MySQL_query('SET NAMES utf8');

5. แทรกคำสั่งด้านล่างนี้ลงไปด้านบน page ไว้ตรงไหนก่าได้ บนๆ

โค๊ด:
mb_internal_encoding("utf-8");

ข้อไหนทำมาแล้วให้ข้ามไปได้เลยงับ

สำหรับการใช้ฟังก์ชั่นด้านตัวอักษรของ php ระดับ advance ในการจัดการ ให้ใช้ mb_ นำหน้าฟังก์ชั่น เช่น

จากเดิม $A = substr($B, 0, $C);
เปลี่ยนเป็น  $A = mb_substr($B, 0, $C);

ฟังก์ชั่นไหนใช้ mb_ ได้บ้าง? ...สามารถ สูบภูมิ ได้ที่ www.php.net งับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์