如何获取用户在数据库中输入的信息量?例如,在个人资料页面上,我想向用户显示如下内容:
Your profile is 25% complete! Please enter all information in your profile.
我想获取该数据并将其设置为变量,以便可以在 jQuery 进度条中使用它。但只计算必要的字段。例如,如果用户没有输入中间名,但其他所有操作都完成了配置文件,仍将是 100%。
好吧,为每个字段建立权重。您可以直接将权重添加到数据库中的(新)字段。然后执行一个查询,选择所有包含信息的字段(针对每个用户)并组合所有权重。然后输出总重量。
如果您没有权重,并且所有字段都相等,请执行
(修复您的字段和表格)SELECT COUNT(*) FROM USER_DATA WHERE USERID=1
- 它应该为您提供为该用户填充了多少字段(假设没有空字段的记录)。然后,您需要知道总共有多少个字段并进行一些数学运算以获得百分比。
尽管如此,这是一个非常模糊的问题,您需要给我们一些数据库架构和示例数据,以便我们给您一个很好的答案。
如果你真的不知道如何做 SQL 和编码,你可以通过 JavaScript 稍微调整一下——在页面末尾添加 JS 字段检查器并通过 JS 输出此数据
<script>
var str = document.getElementById("put_your_uniqe_field_id_here").value;
alert(str);
</script>
你必须自己计算。如果您允许用户输入 10 列个人信息,并且他在其中的 3 列中填写了数据,那么他的个人资料已完成 30%。如果他填满 8 个,则完成 80‰。
100 / totalcols * filledcols
也就是说,如果所有字段都具有相同的权重。如果你有 10 列,但其中两列更重要,你可以数然后加倍。那么你有 10 + 2 = 12 个总数
更新
//cols: name, surname, addres
$total = 3;
$filled =0;
if (!empty($name))
$filled++;
if (!empty($surname))
$filled++;
if (!empty($address))
$filled++;
$p = 100/$total*$filled;
echo $p;