PHP SQL用户配置文件完整性计算不工作


PHP SQL User Profile Completeness calculation not working

我试图在用户帐户和进度条上显示一个配置文件完整性栏,但它没有添加数值,以计算完成字段的百分比,即:If ($row['title'] != ")$completedTitle = 20;

我的缩短代码如下:

<?php 
$result = mysql_query("SELECT title,name,surname,identityno,gender FROM cic_candidates WHERE id='$id' LIMIT 1"); 
while($row = mysql_fetch_assoc($result))
$maximumPoints  = 100;
 {
if($row['title'] != '')
$completedTitle = 20;
if($row['name'] != '')
$completedName = 20;
if($row['surname'] != '')
$completedSurname = 20;
if($row['identityno'] != '')
$dcompletedIdentityno = 20;
if($row['gender'] != '')
$completedGender = 20;
 }
$percentage = ($dcompletedTitle+$completedName+$completedSurname+$completedIdentityno+$completedGender)*$maximumPoints/100;
echo "".$percentage."%";
?>

百分比显示在回显中,但总数是错误的-它没有为每个已完成的字段取20分的值,并将它们包括在百分比计算的"加法"部分。请告诉我我在哪里走错了-我一直试图找出这个4天,并已经谷歌这个和阅读超过2000论坛,但找不到答案。

我想你的情况完全错了,试试这个…

$sql = "SELECT title,name,surname,identityno,gender FROM cic_candidates WHERE id='{$id}' LIMIT 1";
$result = $DBconnection->query($sql); 
$maxvalue  = 100;
$point = 0;
if ($result) {
    while($row = $result->fetch_assoc()){
        if($row['title'] != ''){
            $point1  = $point+20;
        }elseif($row['title'] == ''){
            $point1 = $point+=0;
        }
        if($row['name'] != ''){
            $point2 = $point+20;
        }elseif($row['name'] == ''){
            $point2 = $point+=0;
        }
        if($row['surname'] != ''){
            $point3 = $point+20;
        }elseif($row['surname'] == ''){
            $point3 = $point+0;
        }
        if($row['identityno'] != ''){
            $point4 = $point+20;
        }elseif($row['identityno'] == ''){
            $point4 = $point+0;
        }
        if($row['gender'] != ''){
            $point5 = $point+=20;
        }elseif($row['gender'] == ''){
            $point5 = $point+0;
        }
        // otherwise
     }
}else{
    echo "error completing query";
}
$pint  = $point1+$point2+$point3+$point4+$point5;
$percentage = ($pint*100)/100;
echo $percentage."%";

在查询中使用{}绕过单引号

    <?php 
// fisrt select database
$result = mysql_query("SELECT title,name,surname,identityno,gender FROM cic_candidates WHERE id='{$id}' LIMIT 1"); 
//use of MYSQL_QUERY is deprecated so don't use it 
//use mysqli_query instead of mysql_query
if (!$result) {
echo "Could not successfully run query " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while($row = mysql_fetch_assoc($result))
$maximumPoints  = 100;
$point = 0;
 {
if($row['title'] != '')
$point+=20;
if($row['name'] != '')
$point+=20;
if($row['surname'] != '')
$point+=20;
if($row['identityno'] != '')
$point+=20;
if($row['gender'] != '')
$point+=20;
 }
$percentage = ($point*$maximumPoints)/100;
echo $percentage."%";
?>