PHP SQL用户配置文件完整性计算无效

时间:2014-05-03 13:59:01

标签: php sql

我试图在用户帐户上显示个人资料完整性栏并显示进度条,但是为了计算已完成字段的百分比,它没有添加数字值,即: 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个点的值,并将它们包括在&#34;添加&#34;部分百分比计算。请问你能告诉我哪里出错了 - 我已经试图解决这个问题4天了,并且已经搜索了这个并阅读了2000多个论坛但却无法找到答案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为你从你的情况中弄错了,试试这个......它对我有用

$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."%";

答案 1 :(得分:0)

在查询

中的单引号周围使用{}
    <?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."%";

?>