Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP SQL用户配置文件完整性计算不起作用_Php_Sql - Fatal编程技术网

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

PHP SQL用户配置文件完整性计算不起作用,php,sql,Php,Sql,我试图在用户帐户上显示一个配置文件完整性栏,进度栏正在显示,但它没有添加数值以计算已完成字段的百分比,即: 如果($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_f

我试图在用户帐户上显示一个配置文件完整性栏,进度栏正在显示,但它没有添加数值以计算已完成字段的百分比,即: 如果($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."%";

?>


百分比显示在echo中,但总数是错误的-它没有为每个已完成的字段获取20个点的值,并将其包含在百分比计算的“加法”部分中。你能告诉我哪里出了问题吗?我已经花了4天的时间试图解决这个问题,在谷歌上搜索了2000多个论坛,但找不到答案。任何帮助都将不胜感激。

在查询中使用{}作为单引号

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

?>

我认为你的情况完全错了,试试这个。。。它对我有用

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

我认为是(总和)*100/$maximumpoints,当前结果是什么
$dcompletedTitle
-->
$completedTitle
。根据我的理解,你的计算有一个拼写错误。确实有两个拼写错误。dcompleteidentity…很抱歉,我的线程中有一个输入错误,但我在DW中的代码没有输入错误-好位置!:)我应该把(总和)放在哪里,因为如果我把它加在*$maximumPoints/100之前;它显示一个语法错误我复制了你的代码,但仍然显示0%-你认为它正确读取了“20”的值吗?@user2733533我已经编辑了答案。运行上面的代码后,您得到了什么输出???Title(field completed)-Name(field completed)-Name(field completed)-Name(field completed)-Identityno(field empty)-Gender(field empty),所以结果应该是60%完整。我将它们全部改为小写,结果仍然显示0%完整…@user2733533只是回显“$point”。如果显示为0,则检查查询中的“id”是否有效(即,它退出,并且设置了它的其他值(标题、名称、姓氏等))