最近寫了下英文搜索的小偷,為了讓蜘蛛更好的享受鏈接的樂趣,因此使用了入庫處理,將最近的搜索寫入到mysql中,同時(shí)在首頁調(diào)用這些查詢數(shù)據(jù),就可以達(dá)到網(wǎng)站地圖的效果,但是弊端也出現(xiàn)了了,那就是重復(fù)記錄的問題。
創(chuàng)新互聯(lián):成立于2013年為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為上1000+公司企業(yè)提供了專業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需搭建網(wǎng)站由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對(duì)手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
在網(wǎng)上找到一段實(shí)例,經(jīng)過修改發(fā)現(xiàn)可行,現(xiàn)將代碼公布如下:
$link=mysql_connect(‘localhost’,’root’,’1234’);
//得到MySQL數(shù)據(jù)庫連接
$username=$_GET["name"];
//得到從客戶端表單傳過來的數(shù)據(jù)
$q="select
*
from
usertable
where
user_name='$username'";
mysql_query("SET
NAMES
gb2312");
//避免出現(xiàn)中文亂碼
$rs
=
mysql_query($q,
$link);
//查詢數(shù)據(jù)庫
$num_rows
=
mysql_num_rows($rs);
//得到查詢結(jié)果的總行數(shù)
if($num_rows==0)
//
烈火網(wǎng)
liehuo點(diǎn)虐
歡迎復(fù)制,拒絕惡意采集
liehuo點(diǎn)虐
{
$exec="insert
into
student
(user_name)
values
($username)";
mysql_query("SET
NAMES
gb2312");
mysql_query($exec,
$link);
//若沒有此用戶則將數(shù)據(jù)插入到數(shù)據(jù)庫(注冊(cè)用戶)
echo
"用戶注冊(cè)成功!";
}
else
{
echo
"該用戶名已存在,請(qǐng)重新選擇用戶名!";
}
?
每次進(jìn)入提交的頁面,給一個(gè)session,為了避免重復(fù),session的key可以是隨機(jī)的。
在表單填寫頁面
?php
session_start(); // 啟用session
$time = time();
$key = 'sess_' . $time; // 根據(jù)時(shí)間生成一個(gè)隨機(jī)的session key
$_SESSION[$key] = $time; // 設(shè)置session的值
?
!--{通過隱藏表單將 session 的 key傳遞到服務(wù)端處理}--
input type="hidden" name="session_key" value="?php echo $time;?" /
處理頁面
?php
session_start(); // 啟用session
$key = $_POST['session_key'];
if(!$key || $_SESSION[$key] != substr($key, 5)){
// 如果沒有傳 session_key 參數(shù)
// 或者 session_key 參數(shù)值截?cái)?sess_后的數(shù)字 與 session參數(shù)值不匹配
unset($_SESSION[$key]); // 刪除 session 值
// 然后考慮是否要提示錯(cuò)誤,或者轉(zhuǎn)入另一個(gè)頁面
exit(); // 終止頁面代碼執(zhí)行
}
// 下面進(jìn)行數(shù)據(jù)寫操作
// 數(shù)據(jù)操作完成后,刪除session
unset($_SESSION[$key]);
// 后續(xù)操作
?
$########################
一個(gè)頁面也是一樣的,我給你的只是一個(gè)思維,
具體如何實(shí)現(xiàn),你要根據(jù)自己的實(shí)際情況去處理
很多東西都不是通用的
另外,不管多少個(gè)頁面,必然包含兩個(gè)部分,一部分是表單填寫,一部分是數(shù)據(jù)處理,這個(gè)跟多少個(gè)頁面無關(guān)~~就看你是否能夠理解這段代碼的意義,如果不理解的話,嵌套進(jìn)去也沒啥用,能夠理解的話,或許你能夠找出更適合自己的解決方案
你可以這樣,你有一張ip_code表格,你加一個(gè)字段為state,你每次取的時(shí)候把state標(biāo)為1,而沒取得為0,那么每次拿都是去拿為0的。
將關(guān)于mysql函數(shù)?全部改成mssql前綴
$sqlwhere?=?"select?*?from?$dbzh?where?……";//具體哪些字段重復(fù),在where后面加上條件即可
$result?=?mssql_query($sqlwhere);
$num?=?mssql_num_rows($result);?
if?($num??==?0){
//新增操作
}
只要查詢它的ID是否存在,如果存在的話,就重復(fù)了,如果不存在的話,就說明沒重復(fù)
mssql_get_last_message?函數(shù)是做什么用的