存入資料庫: connect_errno) { die('資料庫連失敗:'.$mysqli->connect_error); } $db->query('set names utf8'); $sql = "select * from dede_tongji where sourceUrl='$sourceUrl' and aimUrl='$aimUrl' and date='$time'"; $res = $db->query($sql); www.2cto.com //首先查看現在資料庫這一天有沒有這個連結的資料,如果沒有則建立,否則根據cookie值,來判斷IP和Pv的分別增加多少。 if ( $row = $res->fetch_assoc() ){ $pvSum = $row['pvSum'] + 1; if( $_COOKIE['iptag'] == $cookieTag ){ $sql = "update dede_tongji set pvSum = '$pvSum' where sourceUrl='$sourceUrl' and aimUrl='$aimUrl' and date='$time' "; $db->query($sql); //否則只是ip 和pv 增加一 }else{ $ipSum = $row['ipSum'] + 1; $sql = "update dede_tongji set ipSum = '$ipSum',pvSum = '$pvSum' where sourceUrl='$sourceUrl' and aimUrl='$aimUrl' and date='$time' "; $db->query($sql); } }else{ //資料庫中沒有則添加一條新資料 $sql = "insert into dede_tongji (sourceUrl,aimUrl,ipSum,pvSum,date) values ('$sourceUrl','$aimUrl',1,1,'$time')"; if( $db->query($sql)){ }else{ $db->error; } } //利用js實現跳轉 echo ""; ?> 從資料庫中查詢,這裡使用到了一個分頁類在我的令一片部落格裡大家可以找到,關於這個分頁類的用法 結合這個例子和分頁類的成員函數可以很好的理解,主要是在進行資料庫查詢時sql語句帶上 limit 限定條件就可以了,用到的分頁類是:page.class.php下面是從資料庫中查詢前台顯示資料和分頁類的使用,還有一些控制日期的js '; //echo $date; //exit(); //串連資料庫 $db = new MySQLi('localhost','a','acyr','www_a_com'); if ($mysqli->connect_errno) { die('資料庫連失敗:'.$mysqli->connect_error); } $db->query('set names utf8'); //如果現在的查詢日期是當前日期,則全部輸出且按日期排序 if($date==$time){ //獲得這種情況下的總條數,用於分頁顯示(分頁類要用到這個參數) $sql = "select count(*) from dede_tongji where sourceUrl='$wangzhan' order by date desc"; $row = $db->query($sql)->fetch_row(); $allRows = $row[0]; //總條數 $pageList = new Page($allRows,2,4,array('pre'=>'上一頁','next'=>'下一頁')); //$res = $db->query( "select * from dede_tongji where sourceUrl='$wangzhan' order by date desc {$pageList->limit()}" ); $sql = "select * from dede_tongji where sourceUrl='$wangzhan' order by date desc {$pageList->limit()}"; //echo $sql; $res = $db->query($sql); $resArr = array(); while( $row = $res->fetch_assoc()){ $resArr[] = $row; } $res->free_result(); /*echo '
'; var_dump($resArr); foreach( $resArr as $v ){ echo $v['aimUrl']; }*/ //print_r($res); //exit(); }else{ //獲得這種情況下的總條數,用於分頁顯示 $sql = "select count(*) from dede_tongji where sourceUrl='$wangzhan' and date='$date'"; $row = $db->query($sql)->fetch_row(); $allRows = $row[0]; //總條數 $pageList = new Page($allRows,2,4,array('pre'=>'上一頁','next'=>'下一頁')); $sql = "select * from dede_tongji where sourceUrl='$wangzhan' and date='$date' {$pageList->limit()} "; //echo $sql; $res = $db->query($sql); $resArr = array(); while( $row = $res->fetch_assoc()){ $resArr[] = $row; } $res->free_result(); //print_r($res); //exit(); } ?> 統計結果
pre(); echo $pageList->first();echo $pageList->strList(); echo $pageList->end();echo $pageList->next(); echo " 請選擇跳轉到第: ";echo $pageList->selectList().' 頁'; } ?> 最後還有就是資料庫表的結構,這樣只有一張表 在pv記錄上還有一些小誤差,因為這裡主要是用 cookie控制的時間,所以有誤差 如果有高手可以最佳化資料庫設計用ip來控制,能力有限,望大家見諒: CREATE TABLE `dede_tongji` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `sourceUrl` varchar(255) NOT NULL, `aimUrl` varchar(255) NOT NULL, `ipSum` int(10) unsigned NOT NULL, `pvSum` int(10) unsigned NOT NULL, `date` date NOT NULL,
http://www.bkjia.com/PHPjc/477856.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477856.htmlTechArticle存入資料庫: ?php header(Content-type: text/html; charset=utf-8); //echo $_COOKIE[iptag]; date_default_timezone_set(PRC); //目標網站url $aimUrl = $_GET[r]; //來源網站...