在数据库中输入了多少数据?

时间:2013-03-12 23:00:16

标签: php mysql

如何获取用户在数据库中输入的信息量? 例如,在个人资料页面上,我想向用户显示如下内容:

Your profile is 25% complete! Please enter all information in your profile.

我想获取该数据并将其设置为变量,以便我可以在jQuery进度条中使用它。 但只计算必要的字段。例如,如果用户未输入中间名,但其他所有内容完成配置文件仍将是100%。

2 个答案:

答案 0 :(得分:3)

好吧,为每个领域确定重量。您可以直接将权重添加到数据库中的(新)字段。然后执行一个查询,选择包含信息的所有字段(对于每个用户)并组合所有权重。然后输出总重量。

如果您没有权重,并且所有字段都相同,请执行

(修复您的字段和表格)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>

答案 1 :(得分:1)

你必须自己计算。如果您允许用户输入10列个人信息,并且他用其中3个数据填充,那么他的个人资料就完成了30%。 如果他填补了8 its完成了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;