无法计算 MySQL/PHP 列中的值

Posted

技术标签:

【中文标题】无法计算 MySQL/PHP 列中的值【英文标题】:Cannot count values in column MySQL/PHP 【发布时间】:2013-05-24 14:53:34 【问题描述】:

我有下表:

ID  Name    Phone   Email   SchoolGymnasium City    Password    Status  
1                                                                 0

我想检查'Status'列中的整个'Directors'表中是否存在值0,如果存在则运行以下html代码:

<h1 class="page-title projects">Директори</h1>            
            <a href="javascript:;" id="add-project" class="btn add-project">Add Project</a>
            <div id="projects-alert" class="alert">
            <a href="#" class="close" title="Close">X</a>Quick tip: You can re-order projects by dragging and dropping them into place.</div>

否则运行以下代码:

<div id="no-projects">
        <h2>В момента няма подадени заявки.</h2>
        <p>Ако желаете може да добавите директор, като кликнете не бутон по-долу. Информация за вход в системата ще бъде изпратен на посоченият е-мейл.</p>
        <a href="javascript:;" class="btn add-project">Добавете Директор</a>
    </div>

为此,我做了以下事情,但没有发生:

<?php $jojo = mysql_query("SELECT COUNT(id) AS Status FROM Directors WHERE Status = '0'");
            if(mysql_num_rows($jojo) > 0)?>
            <h1 class="page-title projects">Директори</h1>            
            <a href="http://denismm778.dunked.com/admin/projects/new" id="add-project" class="btn add-project">Add Project</a>
            <div id="projects-alert" class="alert">
            <a href="#" class="close" title="Close">X</a>Quick tip: You can re-order projects by dragging and dropping them into place.</div>
    <?php  else ?>
<div id="no-projects">
        <h2>В момента няма подадени заявки.</h2>
        <p>Ако желаете може да добавите директор, като кликнете не бутон по-долу. Информация за вход в системата ще бъде изпратен на посоченият е-мейл.</p>
        <a href="javascript:;" class="btn add-project">Добавете Директор</a>
    </div><?php ?> 

想法是这样的。如果Status 列的任何位置有Status 0,则显示第一个HTML 代码,否则显示第二个代码。

【问题讨论】:

是运行no-projects div 还是projects-alert,你的状态字段类型是什么? HTML 代码与整个 PHP 代码无关。 看这里***.com/questions/214419/… 您是否直接在任何 gui 查询浏览器中检查了查询.. 如果是这样,您在 gui 查询浏览器中得到的状态是什么结果... 【参考方案1】:

您的查询将始终返回一行。您需要检查该行中“状态”字段的值,以查看 IT 是否 >0。

【讨论】:

我知道问题出在此处但看不到:SELECT COUNT(id) AS Status FROM Director WHERE Status = '0'" 不,问题不存在。我已经告诉你问题是什么以及你必须做什么来解决它! 我不关心值是否大于0。我只需要知道值> 0是否> 0。 这就是我告诉你的方法!!!!!!如果有超过 0 个值 >0,那么您的计算字段“状态”的值将 >0。【参考方案2】:

为计数使用另一个名称。 试试这个方法:

$query = "SELECT COUNT(id) AS count FROM Directors WHERE Status = '0'";
$results = mysql_query($query);
$values = mysql_fetch_assoc($results);
$num_rows = $values['count'];
if($num_rows > 0)
    ....

【讨论】:

他不需要使用另一个名字,但我同意它会更明智。您的代码将无法工作,因为您有一个流氓空间。我一直告诉他这样做,但他坚持说他不想这样做。有时你只能放弃! 我只是不知道要解决什么问题。我真的很想明白这一点......如果你能解释一下,我将非常感谢。 我已经在下面的回答中解释过了。您正在计算状态列中零的数量。因此,如果实际状态列中有任何零,则计算列的值(无论是称为状态还是计数)都将 >0。我说过查询总是会返回一行。这就是为什么你正在尝试的事情不能如你所愿。所以现在我已经解释了两次。 我已经更正了流氓空间。我同意 Payalytic 船长的观点。查询将始终返回一行【参考方案3】:

在您的查询中:

SELECT COUNT(id) AS Status FROM Directors WHERE Status = '0'

您正在检查返回的行数是否大于 0。 但您的查询将始终返回一行。 即包含状态为 0 的行数的行。因此您的条件将始终为真

所以而不是

if(mysql_num_rows($jojo) > 0)

使用

$result = mysql_fetch_array($jojo);

if($result['Status'] > 0)

//display html



else

//display alternate html


【讨论】:

以上是关于无法计算 MySQL/PHP 列中的值的主要内容,如果未能解决你的问题,请参考以下文章

无法将插入的值保存到 tableview 和 mySQL - PHP

使用 dplyr 有条件地替换列中的值

Numpy - 如何根据其他列中的二进制值计算列中的值?

用于计算同一列的值百分比的 SQL [关闭]

如果另一列中的行包含列表中的项目,则计算一列中的值的总和

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?