Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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/8/mysql/64.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 mysql获取数据库中列的百分比值_Php_Mysql - Fatal编程技术网

Php mysql获取数据库中列的百分比值

Php mysql获取数据库中列的百分比值,php,mysql,Php,Mysql,我在数据库中有一个表,目前正在使用SELECT语句提取数据,其中来自列意见的信息等于负或正 我还想做的是将正面数据作为总体百分比输出,但不确定这是否可能。我查看了多个溢出问题,但什么都看不到。任何帮助都将不胜感激 $sql = "select Opinion from survey where Opinion = 'Positive'"; $result = mysqli_query($con, $sql); if (!$result) { die(m

我在数据库中有一个表,目前正在使用SELECT语句提取数据,其中来自列意见的信息等于负或正

我还想做的是将正面数据作为总体百分比输出,但不确定这是否可能。我查看了多个溢出问题,但什么都看不到。任何帮助都将不胜感激

    $sql = "select Opinion from survey where Opinion = 'Positive'";

    $result = mysqli_query($con, $sql);

    if (!$result) {
        die(mysqli_error($con)); 
    }

    echo "<div style='overflow: auto;'>";
    echo "<table width=40% border=1 align=center >
            <tr>
                <th>Opinion</th>
                <th>Date</th>
            </tr>"; 

    if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            echo '<tr align=center>';
            echo "<td>" . $row['Opinion'] . "</td>";    
    }

} else {
    echo "0 results";
}
?>

像这样的SQL查询

SELECT COUNT(Opinion) /  (SELECT COUNT(Opinion) FROM survey) * 100
FROM survey 
WHERE Opinion = 'Negative'

查询将计算“积极”意见占“调查”表总行数的百分比:

select (SUM(IF(Opinion = 'Positive',1,0))/count(*))*100 as percentage_positive
from survey 
下面的查询可以一次确定每个不同意见的百分比:

select 
    Opinion,
    count(*) as total,
    (count(*) / (select count(*) from survey))*100 as percentage
from survey  
group by opinion

在Kevin HR的帮助下,我用下面的代码修复了我的问题

$sql = "select Opinion,count(*) as total,(count(*) / (select count(*) from survey))*100 as percentage from survey group by opinion";

$result = mysqli_query($con, $sql);
   echo "<div style='overflow: auto;'>";
echo "<table width=40% border=1 align=center >
<tr>
<th>Opinion</th>
<th>Percentage</th>
</tr>"; 

   if (mysqli_num_rows($result) > 0) {

         while($row = mysqli_fetch_assoc($result)) {

        echo '<tr align=center>';

                            echo "<td>" . $row['Opinion'] . "</td>";
                            echo "<td>" . $row['percentage'] . "</td>";
         }
   } 
    else {
    echo "0 results";
}

用于从数据库中获取行数值的工作代码

$sql = "SELECT * FROM `survey` WHERE Opinion='Positive'";

$connStatus = $con->query($sql);

$numberOfRows = mysqli_num_rows($connStatus);

echo "There are a total number of $numberOfRows Positive rows in the database";
echo "<br>";
echo "<br>";

我不明白你的逻辑,我肯定我记得大约一天以前的这个问题!从那以后你似乎没有更改代码。如果我理解正确,你想获取所有答案,要检查while循环,当前答案是肯定的还是否定的,并对其进行计数++最后将此计数除以mysqli_num_row中的所有可用答案,以获得一个百分比,您当然需要知道有多少个问题得到了回答,有多少个问题得到了肯定的回答,因此您必须做出2按照“从调查中选择COUNTid”和“从调查中选择COUNTid,其中意见为“肯定”的查询,然后对这些查询执行一些简单的数学运算numbers@mitkosoft我试着保持简单。OP问这个问题已经有一段时间了,他们几乎没有或根本没有为自己做任何尝试。我试着回应输出,但没有得到输出就是正确的回应$第[‘意见’]行;echo$counttry echo$行[意见]$行[‘百分比’];现在已解决我的问题非常感谢您的帮助: