2015-09-26 65 views
-2

我的例子是,如果用户选择apple,它将只为该用户运行一次代码。我的示例代码:是否可以为用户只运行一次php代码?

<?php 
/* 
id user_id category 
1   2  apple 
2   4  banana 
3   6  apple 
4   7  berry 
*/ 
$sql = $wpdb->get_results("SELECT category FROM $table_name WHERE user_id=1"); 
foreach($sql as $value) { 
    $category = $value -> category; 
    if ($category == 'apple') { 
     //code here only run once 
    } else { 
     //code will run as many as time if the user click 
    } 
} 
?> 

回答

1

您可以设置像一个会话变量:

foreach($sql as $value) { 
    if($value->category == "apple" && !isset($_SESSION["yourvarname"])) { 
     //run your code once 
     $_SESSION["yourvarname"] = 1; 
    } 
    else { 
     //run your code many times 
    } 
} 
+0

原谅我我的无知。如果用户使用不同的计算机或清除cookie,那么$ _SESSION [“yourvarname”] = 1仍然存在。 – conan

+0

@conan,在那种情况下,你会如何知道它是同一个用户?除非用户登录到您的站点,否则几乎不可能确定。 – rnevius

+0

是的,我会要求用户登录。我认为最好的方法是在数据库表中创建一列并存储它? – conan

相关问题