גם כדי לדעת את כל הפרמטרים האלה לא חייב לעשות לכל אחד רשומה חדשה.
פשוט בכל דף תתן גם עמודה "IP" שתפריד כל IP בסימן "|" לדוגמא הטבלה תראה כך:
ID - מזהה העמוד (לדוגמא - 3)
VIEWS - מספר צפיות בעמוד (לדוגמא - 2)
IP - הIPים שצפו כבר בעמוד (לדוגמא - "123.256.23.31|88.62.642.12)
pageType - מה שאמרת, "סוג הדף" (נניח שכמו שרצית הסוג הוא 2)
עכשיו פשוט בכל פעם לפני שאתה מוסיף לעמוד +1 בכמות הצפיות (VIEWS) אתה בודק אם הIP של מי שצופה בדף שווה לאחד מהIPים שנשמרו בעמודה "IP".
אתה יכול לבצע את הכנסת הIP והבדיקה אם הוא כבר קיים ע"י EXPLODE פשוט של העמודה, הנה קוד דוגמא (נניח שהערכים שהבאתי לעיל הם ערכי הטבלה):
PHP קוד:
$ip = $_SERVER['REMOTE_ADDR'];
$pageID = $_GET['id'];
$upView = '1';
$query = mysql_query("SELECT * FROM table WHERE id='$pageID' ")
$row = mysql_fetch_array($query);
$views = $row['VIEWS']+1;
$exp = explode("|", $row['IP']) //מפרקים את הערך שנמצא בעמודה IP בין הסימנים "|" (מה שמפריד את רשימות הIP
for($i='0';$i<count($exp);$i++) { //נתחיל לולאת FOR כדי לבדוק את כל רשימות הIP שקיימים בעמודה
if($i=='0') //אם לולאה רצה פעם ראשונה...
$updateIP = $exp[$i]; //נקבע משתנה חדש שמעתה יכיל את כל הIP של הטבלה על מנת לסדר IP מחדש במידה והIP הצופה עכשיו הוא ייחודי (ההכנס לטבלה לאחר הסידור מחדש תעשה רק אם הIP ייחודי)
else
$updateIP .= "|".$exp[$i]; //יתחיל להפריד IP הסימן | בין IP לIP
if($exp[$i]==$ip) //אם הוא מוצא IP בעמוד שכבר שווה לIP של מי שצופה אז הוא שנה את המשתנה ל0
$upView='0';
}
if($upView=="1") { //בודק אם המשתנה שווה ל1, אם כן, כלומר אם לא בוצע שינוי אז הIP לא קיים כבר בעמוד ולכן זו צפייה ייחודית ואז...
$updateIP .= "|".$ip; //אם הIP שצופה הוא ייחודי ולא קיים בטבלה נשרשר אותו למשתנה שיעדכן את הIP הייחודים ונכניס לטבלה את הכל...
mysql_query("UPDATE table SET VIEWS='$views', IP='$updateIP' WHERE id='$pageID'"); //פשוט, לאחר הבדיקה שביצענו אם הIP שצופה הוא ייחודי ואינו נמצא בטבלה, אם אמת נכניס מחדש את רשומות הIP וגם את מספר הצפיות בעמוד
}
בקשה, זה הקוד שבעצם יבצע לך את הבדיקה אם הIP שצופה בעמוד כבר צפה בעמוד בעבר או לא, במידה והוא ייחודי ואינו צפה בעמוד עדיין כמות הצפיות בדף תגדל ב1 ורשומות הIP יעדוכנו ויכללו מעתה את המזהה של הצופה העכשווי.
כמובן שיש עוד דרכים לכתוב אותו, אולי אפילו בדרכים יעילות יותר אבל אני לא מאמין שזה משמעותי כל כך..
עכשיו את הקוד שביקשת בהתחלה הרבה יותר פשוט לכתוב, כמובן שחוץ מזה שיותר פשוט לכתוב מעכשיו לא תכנס לך כל פעם רשומה חדשה למסד עם כל צפייה ייחודית...
אני די בטוח שאת הקוד שביקשת בהתחלה לאחר השינוי אתה תדע לכתוב אבל בכל זאת, שנעשה עבודה מלאה (:
PHP קוד:
$query = mysql_query("SELECT * FROM table WHERE pageType='2' ORDER BY VIEWS DESC LIMIT 0,10");
while($row=mysql_fetch_array($query)){
print 'יציג לך את 10 העמודים הכי נצפים מסוג pageType ששווים ל2';
}
מקווה שעזרתי