Подсчет не пустых столбцов с использованием PHP - PullRequest
0 голосов
/ 02 ноября 2018

у меня есть таблица "tbl_userpersonal",

что я хочу добиться, это проверить, какие столбцы заполнены, а какие нет, поэтому я могу рассчитать или отобразить процент заполнения профиля. \

До сих пор я пробовал много разных техник и кодов, и мой код считает все столбцы, но я хочу, чтобы он считал пустые столбцы значений как 0. пожалуйста, помогите мне с решениями.

Пока, если в каком-либо столбце есть хотя бы одна запись для пользователя, это дает мне 100%, в противном случае 0% нет промежутка между

В настоящее время, если в столбце «папа_имя» & «мама_имя» & «DOB» есть значение для пользователя с user_authtoken = «app_7837hfjd57hdj», ожидаемый результат должен быть 3 50% т.е. (3/6) * 100

то, что сейчас происходит, это

если в каждом из этих столбцов есть значение для пользователя с user_authtoken = "app_7837hfjd57hdj", вывод будет отображаться как

6 100% т.е. (6/6) * 100

или если для пользователя нет записи с user_authtoken = "app_7837hfjd57hdj", вывод выводит 0 0%

enter image description here

вот код 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;

1 Ответ

0 голосов
/ 02 ноября 2018

я думаю, что у вас есть пустое значение в таблице, не пусто, попробуйте это

при этом будет проверяться как нулевое, так и пустое значение

$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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...