הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [SQL+PHP] בעיה בעיה בIF והכנסה לטבלה (https://hosts.co.il/forums/showthread.php?t=52033)

daMn 14-08-07 15:31

[SQL+PHP] בעיה בעיה בIF והכנסה לטבלה
 
אז ככה אני בונה מין מערכת ססטיסטיקה קטנה.

אז מה שאני עושה זה ככה:
כאשר נכנסים לעמוד המערכת לוקחת את הip של האורח ואת התאריך שהוא נכנס, לאחר מכן היא בודקת אם האיפי קיים(במידה שלא היא מוסיפה אותו לטבלה), והיא בודקת גם אם האיפי קיים אך התאריך שונה מהיום ואז היא גם מוסיפה אותו לטבלה.

עד כאן בסדר,
ניקח דוגמא שיש לי למשל בשורה הראשונה ככה:
IP = 1.1.1.1
DATE = 13/08/2007

לאחר מכן עוד שורה שהיא
IP = 1.1.1.1
DATE = 14/08/2007

(*שימו לב לשינוי תאריך)

עכשיו למשל הIP הזה נכנס היום (14/08/2007) פעם שנייה כבר, אז המערכת שלי משום מה בודקת רק את השורה הראשונה ואז היא מוסיפה עוד פעם, ככה שיש לי פעמיים את הIP באותו תאריך.

הנה הקוד:

PHP קוד:

<?php 
include "../connection.php"

$ip_client       =   $_SERVER['REMOTE_ADDR'];
$refer           =   $_SERVER['HTTP_REFERER']; 
$current_date    =   date ("d/m/Y");


$sql mysql_query("SELECT * FROM statistics");
$num_rows mysql_num_rows($sql);
if (
$num_rows == ) {
mysql_query("INSERT INTO statistics (ip, date) VALUES ('$ip_client', '$current_date')"); 



$ips mysql_query("SELECT * FROM statistics WHERE ip='$ip_client'");
$row mysql_fetch_array($ips);

if (
$ip_client == $row['ip'] AND $current_date != $row['date']) {
mysql_query("INSERT INTO statistics (ip, date) VALUES ('$ip_client', '$current_date')");
}

if (
$ip_client != $row['ip']) { 
mysql_query("INSERT INTO statistics (ip, date) VALUES ('$ip_client', '$current_date')");
}  

?>

אני צריך שהיא תבדוק את כל השורות ואם יש באחת השורות אותו איפי ואותו תאריך אז זה לא מוסיף, ואני לא ממש מצליח...

Elad-A 14-08-07 16:08

למה שלא תעשה פשוט תנאי ששולף לפי האיפי ולפי התאריך הנוכחי?

PHP קוד:

$query mysql_query("SELECT * FROM yourtable WHERE ip = '$ip' AND date = '$date' ");
if(
mysql_num_rows($query) == 0)
{
//insert to db



daMn 14-08-07 16:25

טכנית למה שלי לא מצליח?

Elad-A 14-08-07 16:40

כי אתה מכניס למסד לפני שאתה עושה בדיקה..


כל הזמנים הם GMT +2. הזמן כעת הוא 00:09.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ