簡體   English   中英

用戶功能商店系統

[英]User Function Shop System

在我開始之前,我必須聲明我對php / sql都是新手,因此如果我的理解有限,我深表歉意。

好的,基本上,我有一個帶有用戶登錄系統的站點,用戶可以在其中做各種事情來賺取積分,然后將其交換為新功能,在本示例中,我將其稱為“ user_images”函數。

事務存儲在“ function_users”中。

ID
function_id
user_id
cost
date

我的系統已經到了用戶可以訪問商店頁面,購買功能並扣除適當的積分或貨幣的地步,我的問題是有經驗的編碼人員,最有效的方法來確定是否購買了該功能由用戶?

粗略的例子(是的,我知道這不是msql注入證明,它只是一個例子:

$logged = $_SESSION['user_id'];

$check = mysql_query("SELECT * FROM feature_users WHERE `user_id`='$logged' AND feature_id='1'");
$check = mysql_num_rows($check);

if ($check < 1) {
include/features/user_images.php
?>

我並不是要有人為我編寫代碼,我只是在問一種最有效的方式來傳達用戶是否購買了該功能,以便隨后可以顯示它。 提前致謝

您的查詢:

SELECT *
FROM feature_users
WHERE `user_id` = '$logged' AND feature_id = '1';

很簡單 為了使其盡可能高效,您需要在表上添加一個復合索引:

create index feature_users_user_feature on feature_users(user_id, feature_id);

另外三個評論。 首先,您不需要返回所有列。 如果查詢返回任何內容,則用戶具有該功能。 其次, id列通常是整數(因此,出於可讀性考慮,常量值不應用單引號引起來)。 第三,如果有人在輸入用戶,則通常會在輸入姓名。 您可能真的是說:

SELECT 1
FROM feature_users fu
     users u
     on fu.user_id = u.user_id
WHERE `user_name` = '$logged' AND feature_id = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM