做點贊的時候為什麼加個每天只能點贊一次的代碼,就不行啊。

來源:互聯網
上載者:User
@$love=$_POST['id'];if(isset($love)){$query="SELECT * FROM ecs_article_love where article_id='$love' AND ip='$realip'";$result=mysql_query($query);$row=mysql_fetch_row($result);//dump($row);$ip1=$row[2];$ip2=$realip;$todaytime=strtotime(date('Y-m-d'));$iptime=$row[3];//$endtime=strtotime(date('Y-m-d',strtotime('+1 day')));//echo $todaytime;if(strcmp($ip1,$ip2)==0){echo 2;}if(!$row && $iptime<$todaytime){$query="INSERT INTO ecs_article_love (ip,article_id,iptime) VALUES ('".$ip2."','".$love."','".$todaytime."')";mysql_query($query);//echo "";$sql = $GLOBALS['db']->query("update ".$GLOBALS['ecs']->table('article')." set love=love+1 where article_id=$love");echo 1;}die();}
這是資料庫的設計


回複討論(解決方案)

你的查詢語句都沒有取,當天的資料,取的是IP對應的文章的所有資料

第一條sql就有很大的問題吧,ip='$realip' 如果沒有$realip,是不是就會報錯啊。可以把後面的where條件刪除了。

假設有 $realip 並從第一條sql中找到了ip 或者 為空白 , 進行下面的比較。後面你寫的邏輯應該是錯的。

因為你在之前用的是文章id做的判斷,所以文章可以確定了 , 就差ip是否相同或者今天是否贊過。我覺得邏輯可以這樣:

if( 今天時間 = 這個文章的資料庫 ){
if( 當前贊ip = 資料庫中的ip){
不能贊;
}else{
可以贊;
}

}else{
可以贊;
}

我也是新手,有不對請幫忙指點一下。

第一條sql就有很大的問題吧,ip='$realip' 如果沒有$realip,是不是就會報錯啊。可以把後面的where條件刪除了。

假設有 $realip 並從第一條sql中找到了ip 或者 為空白 , 進行下面的比較。後面你寫的邏輯應該是錯的。

因為你在之前用的是文章id做的判斷,所以文章可以確定了 , 就差ip是否相同或者今天是否贊過。我覺得邏輯可以這樣:

if( 今天時間 = 這個文章的資料庫 ){
if( 當前贊ip = 資料庫中的ip){
不能贊;
}else{
可以贊;
}

}else{
可以贊;
}

我也是新手,有不對請幫忙指點一下。

$realip是擷取用戶端ip的,不會報錯的。你這樣的邏輯我試了下, 當資料庫存在兩條資料時,它就會自動取昨天的時間戳記,一直可以點贊成功。

第一條sql就有很大的問題吧,ip='$realip' 如果沒有$realip,是不是就會報錯啊。可以把後面的where條件刪除了。

假設有 $realip 並從第一條sql中找到了ip 或者 為空白 , 進行下面的比較。後面你寫的邏輯應該是錯的。

因為你在之前用的是文章id做的判斷,所以文章可以確定了 , 就差ip是否相同或者今天是否贊過。我覺得邏輯可以這樣:

if( 今天時間 = 這個文章的資料庫 ){
if( 當前贊ip = 資料庫中的ip){
不能贊;
}else{
可以贊;
}

}else{
可以贊;
}

我也是新手,有不對請幫忙指點一下。

原來只要在sql語句上加個取當天的資料時,這樣就不會出現一直取出昨天的資料一直點贊成功的情況了。。

你的查詢語句都沒有取,當天的資料,取的是IP對應的文章的所有資料

嗯,正解。這樣就不會出現一直取出昨天的資料一直點贊成功的情況了。。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.