2017-08-05 69 views
-2

起初我是php和MySQL的初學者。現在我正在使用「管理」面板開發我的第一個更大的網站。我想用mysql和php做一個簡單的訪問計數器。我製作了這個代碼,訪問者的IP保存在$ ip中,並在數據庫中插入。看起來很容易,但它不起作用:D我花了大約2個小時,但我在代碼中找不到錯誤。它不會在數據庫中顯示任何信息。用mysql/php訪問計數器

include 'connect_db.php'; 
$ip = $_SERVER['REMOTE_ADDR']; 
$sql = mysql_query("SELECT * FROM table WHERE visits='$ip'"); 
if (!$ip == $sql) { 
    $insert = mysql_query("INSERT INTO table (visits) VALUES '$ip'"); 
} 

我在我的表中有2個項目。 1)具有自動增量的ID和2)定義爲VARCHAR 50的訪問。 服務器連接正常,不顯示任何錯誤。

你能幫助我嗎?

+1

節省您的時間學習'mysql_ *'API - 它已被棄用。切換到[PDO](http://php.net/manual/en/book.pdo.php) –

+0

'!$ ip == $ sql'看起來很奇怪。你什麼意思? –

回答

0

PLZ試試這個。 我希望它可以幫助

include 'connect_db.php'; 
$ip = $_SERVER['REMOTE_ADDR']; 
if (isset($ip)){ 
    $sql = mysql_query("SELECT * FROM table WHERE visits = '$ip'"); 
    if(mysql_num_rows($sql)==0){ 
    $insert = mysql_query("INSERT INTO table (visits) VALUES ('$ip')"); 
} 
} 
+0

仍然顯示我所有訪問..:/感謝您的幫助 – Nol

+0

請原諒我糾正:-) –

+0

哦..它工作!非常感謝(> ^^)> – Nol

-1

謝謝,我發現錯..其中一人聲明(謝謝ImAtWar)和其他錯誤是後插入「值」必須是()...

但didn't好好工作。即使插入一次,它也會再次以IP形式插入IP。 :L

修復代碼:

$sql = mysql_query("SELECT * FROM visitcont WHERE visits='$ip'"); 
if ($ip !== $sql) { 
$insert = mysql_query("INSERT INTO visitcount (visits) VALUES ('$ip')"); 
+0

visitcount表只有2個圓柱體ID和訪問? –

+0

是的,只有2個柱子 – Nol

-1

你必須使用庫MySQLi或PDO來代替的MySQL。但現在試試這個:

include 'connect_db.php'; 
$ip = $_SERVER['REMOTE_ADDR']; 
$sql = mysql_query("SELECT * FROM table WHERE visits= $ip"); 
if (!empty($ip) && ($ip != $sql)) { 
    $insert = mysql_query("INSERT INTO table (visits) VALUES $ip"); 
}else{ 
    echo "already inserted"; 
} 
+0

這仍然是錯誤的。 'mysql_query()'返回一個資源。你不能把它比作'$ ip!= $ sql'這樣的字符串。 –

+0

什麼都沒有發生:/ – Nol