-2

ユーザーがデータベースに入力した情報の量を取得するにはどうすればよいですか? たとえば、プロファイルページで、ユーザーに次のようなものを表示したい:

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

そのデータを取得して変数に設定したいので、jQuery プログレスバーで使用できます。ただし、必要なフィールドのみを計算します。たとえば、ユーザーがミドル ネームを入力しなかったが、他のすべてがプロファイル完了を行った場合でも、100% になります。

4

2 に答える 2

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>
于 2013-03-12T23:02:43.433 に答える
1

自分で計算する必要があります。ユーザーに 10 列の個人情報の入力を許可し、そのうちの 3 列にデータを入力した場合、そのユーザーのプロファイルは 30% 完了しています。彼が 8 を満たせば、80‰ 完了です。

100 / totalcols * filledcols

つまり、すべてのフィールドの重みが等しい場合です。10 列あるが、そのうち 2 列の方が重要な場合は、2 倍に数えることができます。次に、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;
于 2013-03-12T23:04:56.123 に答える