我有一张桌子"tbl_userpersonal",
我想要实现的是检查哪些列已填充,哪些不是,我可以计算或显示配置文件完成百分比.\
到目前为止,我已经尝试了很多不同的技术和代码,我的代码计算所有列,但我希望它将空值列计为0.请帮助我解决方案.
到目前为止,如果任何一列中的用户甚至只有一个条目,它给我100%,否则0%没有inbetween
目前,如果user_authtoken ="app_7837hfjd57hdj"用户的"father_name"和"mother_name"和"DOB"列中有值,则预期输出应为3 50%,即(3/6)*100
现在发生的事情是
如果对于具有user_authtoken ="app_7837hfjd57hdj"的用户,这些列中的任何一个内部都有值,则输出显示为
6 100%即(6/6)*100
或者如果user_authtoken ="app_7837hfjd57hdj"的用户没有条目,则输出为0 0%
这是PHP代码
$personal = mysqli_query($con,"
SELECT father_name,
mother_name,
DOB,
adhar_no,
address,
religion,
CASE WHEN father_name IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN mother_name IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN DOB IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN adhar_no IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN address IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN religion IS NOT NULL THEN 1 ELSE 0 END AS personal
FROM user WHERE `user_authtoken` = '$user_ath'
") or die(mysqli_error($con));
$data=mysqli_fetch_assoc($personal);
$pro_count = $data['personal'];
echo $pro_count ;
echo '<br>';
$percentage = ($pro_count /6)*100;
echo $percentage;
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为你在表中有空值而不是空尝试这个
这将检查null和空
$personal = mysqli_query($con,"
SELECT father_name,
mother_name,
DOB,
adhar_no,
address,
religion,
CASE WHEN father_name IS NOT NULL AND father_name<>'' THEN 1 ELSE 0 END +
CASE WHEN mother_name IS NOT NULL AND mother_name<>'' THEN 1 ELSE 0 END +
CASE WHEN DOB IS NOT NULL AND DOB<>'' THEN 1 ELSE 0 END +
CASE WHEN adhar_no IS NOT NULL AND adhar_no<>'' THEN 1 ELSE 0 END +
CASE WHEN address IS NOT NULL AND address<>'' THEN 1 ELSE 0 END +
CASE WHEN religion IS NOT NULL AND religion<>'' THEN 1 ELSE 0 END AS personal
FROM user WHERE `user_authtoken` = '$user_ath'
") or die(mysqli_error($con));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |