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

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

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

man2531
PHP Jr. Member
PHP Jr. Member
โพสต์: 22
ลงทะเบียนเมื่อ: 22/11/2008 4:15 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย man2531 »

มีไฟล์ 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 แต่มันแสดงได้ผิดพลาดและจนปัญญาหาทางออกไม่ได้วานผู้รู้ช่วยชี้แนะทีครับ ขอบคุณมากครับ


โค้ด: เลือกทั้งหมด

<?
$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]
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41266
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ถ้าจะให้เขียนง่ายๆ นะครับ เอาเรื่อง 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
โพสต์: 22
ลงทะเบียนเมื่อ: 22/11/2008 4:15 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย man2531 »

ครับผม ใช่แล้วครับ ยังไงก็ขอบคุณมากน่ะครับ ขอลองก่อง
man2531
PHP Jr. Member
PHP Jr. Member
โพสต์: 22
ลงทะเบียนเมื่อ: 22/11/2008 4:15 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย man2531 »

ขอโทษนะครับคือ ผมลองรันไฟล์แล้วปรากฏว่ามันไม่ยอม echo บรรทัดสุดท้ายของ file text ให้หนะครับ งงครับ แนะนำทีครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41266
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

งง ตรงไหน ล่ะครับจะได้แนะนำได้ถูก
ติดตาม 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
โพสต์: 22
ลงทะเบียนเมื่อ: 22/11/2008 4:15 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย man2531 »

คือว่าผมลอง 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 <<< บรรทัดสุดท้ายไม่ยอมแสดงออกมา
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41266
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

รันไฟล์ ไหนโค้ดเป็นอย่างไร
ติดตาม 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
โพสต์: 22
ลงทะเบียนเมื่อ: 22/11/2008 4:15 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย man2531 »

โพสไม่ติด
ตอนนี้ไฟล์ 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 ตามนี้ครับ

โค้ด: เลือกทั้งหมด

$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);
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41266
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

โค้ดยังเหมือนเดิมเลยนี่ครับ
ยังได้เห็นอะไรใหม่เลย :oops:
ลองทำความเข้าใจ ทีละบรรทัดว่าเขียน ไปแบบนั้นมันจะทำงานจริงๆ ยังไง
แล้วนำเรื่อง array มาประยุคเข้าไปด้วยตามที่แนะนำไป
ติดตาม 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
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41266
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

โค้ด: เลือกทั้งหมด

<?
$read = fopen("a.txt","r");
echo "<table border = 1>";
echo "<tr><td>ip</td><td>frequency</td></tr>";
$line = fgets($read);
$str = explode(",",$line);
 $a = array();
while(!feof($read))
{
                    $line = fgets($read);
                    $str = explode(",",$line);
	$a[$str[2]][] = $str[2];
	echo $str[2].'<br/>';
}
foreach($a as $k => $v) {
    echo "<tr><td>".$k."</td><td>".count($a[$k])."</td></tr>" ;	
}
echo "</table>";
fclose($read);
?>
ติดตาม 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
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 14