Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ช่วยดูโค๊ดให้หน่อยครับ เกี่ยวกับการตัดคำ เก็บค่าใน array ครับ


[PHP] ช่วยดูโค๊ดให้หน่อยครับ เกี่ยวกับการตัดคำ เก็บค่าใน array ครับ

 
Topic : 074704

Guest



โค๊ดครับ
Code (PHP)
001.<body>
002.         <?php // เริ่มการทำงาน
003.            $Mode = $_POST['mode'];
004.            $Str = $_POST['textfield'];
005.                                        echo "<h3>เนื้อหาบทอาขยานคือ : <h3>";
006.                                        echo"".$Str."<br>"; //  $Str เป็นตัวแปลที่รับค่าจากการป้อนมาจากช่อง
007.                                    if($mode == "search" && $Str != ""){//เชื่อมต่อฐานข้อมูล
008.                            $Conn = mysql_connect("localhost","root","1234") or die("ติดต่อฐานข้อมูลไม่ได้");
009.            mysql_select_db("test",$Conn);
010.                                    settype($Str,"string"); // แปลงชนิดตัวแปรให้เป็น string
011.                                    $Str = trim($Str); // ตัดช่องว่างหน้าหลังก่อน
012.                                      $ArrStr = split(" ",$Str); //ตัดช่องว่าง
013.                                    $Counter = 0;//ตัวแปรเก็บตำแหน่งคำ
014.                        for($i=0;$i<count($ArrStr);$i++){
015.                                                $StrTmp = $ArrStr[$i]; // คำที่แยกจากประโยค
016.                $Sql = "SELECT * FROM word_tb WHERE word = '".$StrTmp."'";
017.                mysql_query("SET NAMES tis620");
018.                    $Query = mysql_query($Sql);
019.                $row = mysql_num_rows($Query);
020.                         
021.                                    if($row > 0){ // ถ้าคำนั้นมีในฐานข้อมูลก็ไม่ต้องใช้ Longest
022.                     
023.                $ResultArr[$Counter] = $StrTmp;
024.                $Counter ++;               
025.                    }
026.                                          else { // ถ้าคำนั้นไม่มีในประโยคใช้ Longest เพื่อแยกคำแล้วไปค้นหาในฐานข้อมูล
027.                            $r = TRUE;
028.                            $c2 = 0;
029.                            while($r){
030.                            $c2++;
031.                                             if($c2 > strlen($StrTmp))//$c2 มากกว่าความยาวของข้อความ หยุดการทำงาน
032.                {
033.                        $r = FALSE;
034.                        break;
035.                              //echo $ResultArr."<br>";
036.                }//end if
037.                                /////////////                                        /////ค้นหาในฐานข้อมูล
038.                        $Sql = "SELECT * FROM word_tb WHERE word = '".$StrTmp."'";
039.                        mysql_query("SET NAMES tis620");
040.                        $Query = mysql_query($Sql);
041.                        $row = mysql_num_rows($Query);
042. 
043.                                           if($row == 0){ // ถ้าไม่มีในฐานข้อมูล
044.                         $StrLen = strlen($StrTmp); // หาความยาวของ string1
045.                    $c = 0;
046.                    for($j=0;$j<$StrLen;$j++){
047.                                                                     $StrShift = substr($StrTmp,0,$c); //ตัดอักษรออกทีละตัว
048.                    echo $StrShift."<br>";
049.                            if(strlen($StrShift) > 1){// ค้นหาในฐานข้อมูล
050.                    $Sql = "SELECT * FROM word_tb WHERE word = '".$StrShift."'";
051.                    mysql_query("SET NAMES tis620");
052.                        $Query = mysql_query($Sql);
053.                    $row = mysql_num_rows($Query);
054.                     
055.                                        if($row > 0){ // ถ้ามีในฐานข้อมูล
056.                    $StrTmp = str_replace($StrShift,"",$StrTmp);
057.                    $ResultArr[$Counter] = $StrShift;
058.                    $Counter++;
059.                    break;
060.            if(strlen($StrTmp) == 0){
061.                    $r = FALSE;
062.                    break;
063.                                                     }//จบการทำงานเมื่อขนาดเท่ากับศูนย์
064.                            }
065. 
066.                            }
067.                                $c--;
068.                                }
069.                                 
070.                                }
071.            else{
072.                    //echo $StrTmp."<br>";
073.                    $ResultArr[$Counter] = $StrTmp;
074.                    $Counter++;
075.                    $r = FALSE;
076.                    break;
077.                                }                          
078.                                        } // end while
079.                                    }
080.                                }
081.                        }elseif($mode == "search" && $str == "")
082.                                  {
083.                                    echo "<script>alert(\"กรุณาใส่ข้อความด้วยนะค่ะ\");</script>";
084.                        }
085. 
086.?>
087. 
088.<form action="splitwords.php" method="POST" class="style70">
089.                  <p>
090.                    <input type="hidden" name=mode value="search">
091.                    <input name="textfield" type="text" class="style6" size="50">
092.                  </p>
093.                  <p>
094.                    <input name="Submit" type="submit" class="style71" value="ตัดคำ" />
095.                  </p>
096.</form>
097.  <!--end form-->
098.                <?
099.         
100.if(count($ResultArr) > 0){
101.// แสดงผล
102. 
103.echo "<table  border=2  cellpadding=2 cellspacing=0 width=500 >";
104.echo"<tr><td><font size=4 color= #000099 >คำศัพท์</td> <td><font size=4 color=#000099>มาตราตัวสะกด</td></tr>";
105. 
106.for($i=0;$i<count($ResultArr);$i++){
107. 
108.$Sql = "SELECT *FROM word_tb WHERE word = '".$ResultArr[$i]."'";
109.$query = mysql_query($Sql);mysql_query("SET NAMES tis620");
110.//$row = mysql_num_rows($query);
111.//echo $row."<br>";  
112.while($row=mysql_fetch_array($query)){//วนลูปตาราง
113.echo "<tr>";
114.echo"<td width=55><div align=center><font size=2 bold >".$row['word']."</td>";
115.echo"<td width=70><div align=center><font size=2 bold >".$row['spell']."</td>";
116.echo "</tr>";
117.}
118.}
119.}
120. 
121.echo"</table>";
122.       ?>
123.</body>


คือคิดว่าน่าจะมีปัญหาตรงอาร์เรย์ ตัวอย่างประโยค

"รูปแมวเหมียว น่ารัก น่าเอ็นดู คลอแข้ง คลอขา ร้องดัง เหมียวเหมียว แมวหลายแมว กตัญญูเป็นหนักหนาดูไว้ "

แต่ว่าผลลัพท์ที่ได้เป็นแบบนี้ครับ


จะทำไงให้มันแสดงผลที่ถูกต้องครับ...



Tag : PHP

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-02-28 14:05:29 By : octo View : 1559 Reply : 5
 

 

No. 1



โพสกระทู้ ( 3,848 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook

อัพรูปใหม่ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-28 14:49:11 By : mangkunzo
 

 

No. 2

Guest


array1
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-28 14:56:38 By : octo
 

 

No. 3

Guest


ตอบความคิดเห็นที่ : 2 เขียนโดย : octo เมื่อวันที่ 2012-02-28 14:56:38
รายละเอียดของการตอบ ::
ติดตรงเหมียวเหมียวครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-28 14:58:23 By : octo
 

 

No. 4



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ต้องใช้การตัดคำแบบ Longest Matching ครับถึงจะทำแบบนั้นได้ php ทำได้ครับ แต่มีข้อจำกัดจึงไม่เหมาะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-28 15:34:33 By : ikikkok
 

 

No. 5

Guest


อันนี้ผมก็เขียนจาก Longest Macthing Algorithm นะครับ หรือว่าไม่ใช่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-28 15:51:02 By : octo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูโค๊ดให้หน่อยครับ เกี่ยวกับการตัดคำ เก็บค่าใน array ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่