อยากทราบโค๊ด php นับจำนวนคนอ่าน

เริ่มโพสต์โดย ลุงเอ๊ะ, 06 ธ.ค. 2006, 20:15 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

ลุงเอ๊ะ

พอมีใครช่วยบอกเป็นวิทยาทานได้ไหมครับว่า...แบบเนี้ย (ตัวอย่าง...ตัวสีแดงๆ) ที่นับจำนวนคนเปิดอ่านบทความ เขาทำกันยังไง?
--------------------------------------------------------------------------
1 December 2006 (เปิดอ่านแล้ว 236 ครั้ง)

การสำแดงออกทางศิลปะของนาระ (Yoshitomo Nara) ที่ใช้รูปเด็กเป็นสื่อในการแสดงออก แต่กลับให้ความรู้สึกหม่นเศร้า และลึกลับอย่างน่าประหลาด บรรยากาศที่ส่งออกมาจากผลงาน ทำให้ผมรู้สึกสะดุด งานของเขาเหมือนกำลังอยู่ในฝันร้าย แต่เป็นฝันร้ายที่อยู่บนความไร้เดียงสาของเด็กๆ
-------------------------------------------------------------------------

ต้องใช้โค๊ด php แบบไหนครับ ถึงจะทำให้หน้าที่เลือกบทความ หน้า index.php สามารถจะรู้จำนวนครั้งของคนที่เปิดอ่านบทความ ในแต่ละบท (ซึ่งอยู่ในหน้าอื่น เช่น article_01.php , article_02.php) ได้....พอดีเจ้าแอนนน...บอกให้ผมถามในนี้ ก็ลองดูครับ

Zafire06

#1
ลองเอาโค้ดนี้ไปศึกษา (หรือใช้) ดูครับ

http://www.tizag.com/tools/counter.php
คอนเซ็ปต์ก็ประมาณว่า เปิดดูแต่ละครั้ง เรียกไฟล์ขึ้นมาเพิ่มจำนวน
แล้วพอจะอ่านออกเสียง ก็เรียกไฟล์มาอ่าน
แต่ไม่ได้ดัก IP Address นะครับ รู้สึก  :08:

// เพิ่มเติม อันนี้โจ่งแจ้งกว่าเยอะครับ
http://www.host45.com/resources/phpexamples.php

<?php

###########################################################################
#
# PHP Counter script.
#
# Copyright 2006 Host45.com, Inc.
# Web and Email Hosting
# http://www.host45.com
#
###########################################################################

   
if(!file_exists("counter.txt")) {
       die(
"Unable to open the counter.txt file! Please create it and set correct permissions.<br>");
   } else {
               
$file = fopen("counter.txt", "r");
               
$num = fgets($file,4096);
               
$num += 1;
               
fclose($file);
 
               
$file2 = fopen("counter.txt", "w");
               
fputs($file2, $num);
               
fclose($file2);
   }
   
   echo
"This page has been viewed " . $num . "times.";
?>

ลุงเอ๊ะ

ขอบคุณมากครับคุณซาฟิเร่ แต่ดูๆ แล้วก็ยังงงหน่อยๆ เพราะผมไม่มีพื้นฐานด้านการเขียนโปรแกรมเลย ถ้าอย่างนั้นจะต้องเอาโค๊ดนี้ ไปแปะไว้ระหว่าง วงเล็บสีแดง (เปืดอ่านแล้ว <?php code> ครั้ง) ในหน้า index.php ตามแต่ละหัวข้อ (มีหลายบทความให้เลือก) ในหน้าเลือกบทความ แล้วจะโยงจากหน้าอื่นเช่น article_o1.php , article_02.php , article_03.php มายังไงหรือครับ จะได้ไม่ปนกัน ต้องสร้าง counter.txt เป็น counter_01.txt , counter_02.txt อย่างนี้หรือเปล่าครับ... :09:

Zafire06

อย่างนั้นก็ได้ครับ  :42:

หรืออาจจะทำเก็บไว้ไฟล์เดียวก็ได้
แล้วก็แบ่งบรรทัดเก็บ

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

อาจจะหาสคริปต์สำเร็จรูปจากอินเทอร์เน็ตมาใช้ก็ได้ครับ  :42:
http://www.google.com.hk/search?hl=en&client=firefox&rls=org.mozilla%3Aen-US%3Aunofficial&hs=rbH&q=php+counter&btnG=Search&meta=

ลูงเอ๊ะ

เอ...น่าสนใจครับ ถ้าต้องการให้แบ่งบรรทัดเก็บในไฟล์ counter.txt ตัวเดียวกันจะต้องเขียนยังไงครับ... :09:

Zafire06

จริงใช้อย่างอื่นแบ่งก็ได้ครับ เช่น ในที่นี้ผมจะโมเมใช้ :: เป็นตัวแบ่ง

ในไฟล์ counter.txt ของผมก็จะอยู่ในรูปลักษณะนี้
0||0::1||0::2||0

ประมาณว่า
เลขประจำหน้า||จำนวนครั้งที่กด::เลขประจำหน้า||จำนวนครั้งที่กด

ทีนี้ สมมุติว่าผมต้องการเปลี่ยนอันที่สอง คือ 1||0
<?php $file = "counter.txt"; // กำหนดที่ตั้งไฟล์

$thefile = fopen($file, "r"); // เปิดไฟล์มาเพื่ออ่าน
$content = fread($thefile, filesize($file)); // เอาข้อมูลจากไฟล์มาให้หมด
$ex = explode("::", $content); // แยกเนื้อหาที่ได้ออกจากกันโดยใช้ :: แล้วแปลงเป็น array
$exp = explode('||', $ex[0]); // แยกอีก คราวนี้จะเอาตัวจำนวนครั้งที่กดโดยใช้ || เป็นตัวแยก
$new = str_replace($ex[0], $exp[0].'||'.($exp[1]+1), $content); // แทนที่อันเดิมซะ
fclose($thefile); // ปิดไฟล์

$thefile = fopen($file, "w"); // เปิดเพื่อเขียน ลบทิ้งของเดิมหมด
fputs($thefile, $new); // เขียนที่ได้รับการแทนที่แล้ว
fclose($thefile); // ปิดไฟล์ ?>


มั้งครับ  :08:

iannnnn


Piix

#7
.

Zafire06

คล้ายๆ กับอะไรหลายอย่างแหละครับ
เช่นคำตอบจากคำถาม

เราจะใช้วิธียังไงก็ได้
ขอให้ได้คำตอบเป็นพอ
:01:

เต่ามาก

ไม่ได้นะ...
ผลลัพธ์เหมือนกัน แต่โค้ดไม่ดีอาจทำเว็บล่ม  :05:

เชื่อตู

X11

อ้างคำพูดจาก: ลุงเอ๊ะ เมื่อ 06 ธ.ค. 2006, 20:15 น.
พอมีใครช่วยบอกเป็นวิทยาทานได้ไหมครับว่า...แบบเนี้ย (ตัวอย่าง...ตัวสีแดงๆ) ที่นับจำนวนคนเปิดอ่านบทความ เขาทำกันยังไง?
--------------------------------------------------------------------------
1 December 2006 (เปิดอ่านแล้ว 236 ครั้ง)

การสำแดงออกทางศิลปะของนาระ (Yoshitomo Nara) ที่ใช้รูปเด็กเป็นสื่อในการแสดงออก แต่กลับให้ความรู้สึกหม่นเศร้า และลึกลับอย่างน่าประหลาด บรรยากาศที่ส่งออกมาจากผลงาน ทำให้ผมรู้สึกสะดุด งานของเขาเหมือนกำลังอยู่ในฝันร้าย แต่เป็นฝันร้ายที่อยู่บนความไร้เดียงสาของเด็กๆ
-------------------------------------------------------------------------

ต้องใช้โค๊ด php แบบไหนครับ ถึงจะทำให้หน้าที่เลือกบทความ หน้า index.php สามารถจะรู้จำนวนครั้งของคนที่เปิดอ่านบทความ ในแต่ละบท (ซึ่งอยู่ในหน้าอื่น เช่น article_01.php , article_02.php) ได้....พอดีเจ้าแอนนน...บอกให้ผมถามในนี้ ก็ลองดูครับ

เดาว่ามาจากเว็บประเภทข่าวหรือรวมบทความ
เว็บพวกนี้มันเก็บเป็นฐานข้อมูลทั้งหมดอยู่แล้ว
สมมติเอาง่ายๆ เขาเก็บข่าวไว้ในตารางนึง มี field ต่างๆ ที่เกี่ยวกับข่าว ถ้าต้องการให้สามารถนับจำนวนคนที่เปิดอ่านข่าวนี้ได้ ก็แค่เพิ่ม field ให้นับจำนวนคนอ่านเพิ่มเข้าไปในตาราง

[table : News]
id
NewsSubject
NewsContent
NewsDate
NewsReference
CountRead

เวลาเขาเปิดหน้าข่าว จะเห็นว่าเขาจะต้องส่งตัวแปรคือ id ของข่าวที่จะแสดงไปด้วย
เช่น  news.php?id=5
ตัวนี้เป็นตัวกำหนดว่าจะไปเรียกข่าวจากตาราง (สมมติว่าชื่อ) news ที่บรรทัดหรือ record ไหน
เสร็จแล้วภายในหน้าที่เปิดอ่านข่าวนั้นก็ใส่โค้ดให้ update จำนวนคนอ่าน +1 ทุกครั้งที่เรียกอ่าน
เช่น

$query1=mysql_query("select CountRead from News where id=$id");
$getcount=mysql_result($query1, 0);
$getcount=$getcount+1;
$query2=mysql_query("update News set CountRead=$getcount where id=$id");

นายโอ้เอ้

เอาล่ะครบแล้ว ทั้งเก็บลงไฟล์ เก็บลง mysql  :12:
Today you , Tomorrow me.

ลุงเอ๊ะ


SMF 2.1.7 © 2026, Simple Machines