程式邏輯:記錄每個 IP 的訪問次數 (sum) 及全站總訪問量 (count),不重複計算同 IP。
<?php
$ip = getenv("REMOTE_ADDR");
$conn = mysql_connect('ip','root','****');
mysql_select_db('db',$conn);
// 檢查 IP 是否存在
$sql = "SELECT * FROM counter WHERE ip='$ip'";
$result = mysql_query($sql,$conn);
$num = mysql_num_rows($result);
// 總訪問量
$count = mysql_num_rows(mysql_query("SELECT * FROM counter",$conn));
if ($num == 0) { // 新 IP
$sum = 1;
$count++;
mysql_query("INSERT INTO counter (ip,sum,countdata) VALUES ('$ip','1','$count')",$conn);
} else { // 舊 IP
$row = mysql_fetch_array(mysql_query("SELECT sum FROM counter WHERE ip='$ip'"));
$sum = ++$row['sum'];
mysql_query("UPDATE counter SET sum='$sum' WHERE ip='$ip'");
}
mysql_close($conn);
// 顯示圖形化計數器 (略)
echo "這是你的第 $sum 次訪問";
?>
| 用法 | 範例 | 說明 |
|---|---|---|
| 全欄位 | SELECT * FROM table1; | |
| 指定欄位 | SELECT field1,field2 FROM table1; | |
| 統計筆數 | SELECT COUNT(*) FROM table2; | |
| 多表聯查 | SELECT t1.f1,t2.f2 FROM t1,t2 WHERE t1.f1='v1'; | |
| 條件+排序 | SELECT * FROM t1 WHERE f1='v1' AND f2='v2' ORDER BY f1; | |
| 分頁 | SELECT * FROM t1 WHERE f1='v1' ORDER BY f1 DESC LIMIT n; | |
| 模糊查詢 | SELECT * FROM t2 WHERE name LIKE '%$lin%'; | |
| 子查詢 | SELECT * FROM t1 WHERE id IN (SELECT id FROM t2 ...); | 進階 |
| 最大值 | SELECT MAX(field1) AS field1 FROM table1; |
UPDATE table1 SET field1='value1', field2='value2' WHERE field3='value3';
SET 指定欄位新值,WHERE 限定範圍 (省略則全表更新)。-- 基本語法
INSERT INTO table1 VALUES ('val1','val2',...);
-- REPLACE: 若唯一鍵衝突則先刪舊再插新
REPLACE INTO tbl_name (col1,col2,col3) VALUES ('1','2','3');
DELETE FROM table1 WHERE field1='$val1' AND field2='$val2';
WHERE 則清空全表 (慎用)。SELECT ... INTO OUTFILE、INSERT ... SELECT 可替代 SELECT ... INTO TABLE (MySQL 不直接支援)。mysqli 或 PDO 預處理語句防止 SQL 注入,舊版 mysql_* 函數已棄用。