โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

man2531
PHP Jr. Member
PHP Jr. Member
Posts: 22
Joined: 22/11/2008 4:15 am

โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by man2531 » 17/07/2009 11:58 pm

มีไฟล์ dialog.txt อยู่ 1 ไฟล์ ภายในมีรายละเอียดดังนี้ครับ

a,20,192.168.16.106,32
b,90,192.168.16.136,44
c,50,192.168.16.221,0
d,90,192.168.16.136,44
e,50,192.168.16.221,80
f,90,192.168.16.136,55
g,20,192.168.16.106,10

จากโจทย์ ให้ทำการแสดง ip และ ความถี่ของ ip โดยดึงมาจากไฟล์ text ครับ คือคำตอบก็ประมาณนี้
ip frequency
192.168.16.106 2
192.168.16.136 3
192.168.16.221 2

เป็นต้นครับ


ผมมี code ตัวอย่างประมาณนี้ครับ คือมันไม่ error แต่มันแสดงได้ผิดพลาดและจนปัญญาหาทางออกไม่ได้วานผู้รู้ช่วยชี้แนะทีครับ ขอบคุณมากครับ


Code: Select all

<?
$read = fopen("log.txt","r");
echo "<table border = 1>";
echo "<tr><td>ip</td><td>frequency</td></tr>";
$i = 0;
    $line = fgets($read);
        $str = explode(",",$line);
        $check = $str[2];
         $num = 0;
while(!feof($read))
{

        //$check[$i] = $str[2];


            if( $check == $str[2])
                {
                    $num++;
                    $line = fgets($read);
                    $str = explode(",",$line);

                }else{
                     echo "<tr><td>".$check."</td><td>".$num."</td></tr>" ;
                       $num = 0;
                          $check = $str[2];
                }



   //$i++ ;

}
echo "</table>";
fclose($read);
?>[/color]

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23223
Joined: 22/09/2008 6:18 pm
Contact:

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by mindphp » 18/07/2009 12:36 am

ถ้าจะให้เขียนง่ายๆ นะครับ เอาเรื่อง array เข้ามาประยุกต์ใช้ครับ
คำตอบประมาณนี้เปล่าครับ
192.168.16.136 3
192.168.16.221 2
192.168.16.106 1

เอ๋ว่าแต่โจทย์การบ้านหรือเปล่าครับเนี่ย
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

man2531
PHP Jr. Member
PHP Jr. Member
Posts: 22
Joined: 22/11/2008 4:15 am

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by man2531 » 18/07/2009 11:56 am

ครับผม ใช่แล้วครับ ยังไงก็ขอบคุณมากน่ะครับ ขอลองก่อง

man2531
PHP Jr. Member
PHP Jr. Member
Posts: 22
Joined: 22/11/2008 4:15 am

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by man2531 » 18/07/2009 1:57 pm

ขอโทษนะครับคือ ผมลองรันไฟล์แล้วปรากฏว่ามันไม่ยอม echo บรรทัดสุดท้ายของ file text ให้หนะครับ งงครับ แนะนำทีครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23223
Joined: 22/09/2008 6:18 pm
Contact:

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by mindphp » 18/07/2009 2:12 pm

งง ตรงไหน ล่ะครับจะได้แนะนำได้ถูก
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

man2531
PHP Jr. Member
PHP Jr. Member
Posts: 22
Joined: 22/11/2008 4:15 am

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by man2531 » 18/07/2009 2:58 pm

คือว่าผมลอง run ไฟล์ดูมันไม่ยอมอ่านบรรทัดสุดท้ายขึ้นมาอะครับ
คือปกติคำตอบมันต้องมี 3 บรรทัดแบบนี้

192.168.16.106 2
192.168.16.136 3
192.168.16.221 2


แต่พอรันได้แบบนี้

192.168.16.106 2
192.168.16.136 3

คือมันแสดงแค่ 2 บรรทัดบน แต่บรรทัดล่างไม่ยอมแสดง เหมือนลูปยังไม่หมด แต่มันดันตัดบรรทัดล่างไปครับ
พอเข้าใจที่พูดอะเป่า คือเรียบเรียงคำพูดม่ค่อยเป็น ขอบคุณครับ

192.168.16.221 2 <<< บรรทัดสุดท้ายไม่ยอมแสดงออกมา

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23223
Joined: 22/09/2008 6:18 pm
Contact:

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by mindphp » 18/07/2009 3:04 pm

รันไฟล์ ไหนโค้ดเป็นอย่างไร
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

man2531
PHP Jr. Member
PHP Jr. Member
Posts: 22
Joined: 22/11/2008 4:15 am

Re: โจทย์ข้อนี้ผมทำไม่ได้จริงๆครับ

Post by man2531 » 18/07/2009 3:28 pm

โพสไม่ติด
ตอนนี้ไฟล์ log.txt ภายในมีอักษรดังนี้

a,20,192.168.16.106,32
b,90,192.168.16.136,44
c,70,192.168.16.136,55
d,80,192.168.16.136,22
e,50,192.168.16.156,14
e,50,192.168.16.156,14
e,50,192.168.16.176,14
e,50,192.168.16.156,14


code ตามนี้ครับ

Code: Select all

$read = fopen("log.txt","r");
echo "<table border = 1>";
echo "<tr><td>ip</td><td>frequency</td></tr>";

        $line = fgets($read);
        $str = explode(",",$line);
        $check = $str[2];
         $num = 0;
         //echo $check;
while(feof($read) == false)
{

        //$check[$i] = $str[2];


            if( $check == $str[2])
                {
                    $num++;
                    $line = fgets($read);
                    $str = explode(",",$line);

                }
            else{
                     echo "<tr><td>".$check."</td><td>".$num."</td></tr>" ;
                       $num = 0;

                       $check = $str[2];

                }



   //$i++ ;

}

echo "</table>";
fclose($read);

Post Reply

Return to “Programming - PHP”

Who is online

Users browsing this forum: Bing [Bot] and 15 guests