计算一个数据库字段中的项目数

时间:2011-08-25 21:58:04

标签: php mysql count

我的MySQL数据库中有一个名为Sponsors的表 该表有两个字段。 eventnames。字段names填充了不同的字词。例如Pieter, Sam, Thomas。我想计算names中的名字数量。

如何使用PHP和SQL请求执行此操作。我虽然喜欢这样......

$query = mysql_result(mysql_query("SELECT names FROM Sponsors WHERE id = '55'"));
$result = str_replace(',',' ', $query);
$total = count($result);

但这并没有解决它......

编辑

if(!empty($activiteiten))
    {
        foreach($activiteiten as $k => $v) 
            {
                $query = mysql_result(mysql_query('SELECT aanwezig FROM tblLeidingAgenda WHERE id = "'.$v["id"].'"),0');
                $result = str_replace(", ", " ", $query);
                $total = str_word_count($result);

                echo '<div class="lof-main-item">';
                echo '<img src="images/791902news3.jpg" title="Newsflash 2" height="300" width="900">           
                            <div class="lof-main-item-desc">
                                <h3><a target="_parent" title="Newsflash 2" href="#">'.$v["uur"].'</a></h3>
                        <p>'.$v["titel"].'</p>
                        ID: '.$v["id"].'
                    <form method="post" action="#">
                        <input type="submit" name="aanwezig" value="Ik ben aanwezig"/><br />
                        <input type="submit" name="afwezig" value="Ik ben afwezig"/><br />
                        <input type="submit" name="herinnering" value="Stuur herinnering"/><br />
                        <input type="text" name="id" value="'.$v["id"].'" />
                        Ik ben aanwezig ('.$total.'): '.$v["aanwezig"].'<br />
                        Ik ben afwezig: '.$v["afwezig"].'</form></div></div> ';
            }
    }

3 个答案:

答案 0 :(得分:3)

检查行数:

$total = mysql_num_rows($result);

PHP Manual (mysql_num_rows)

首先是SELECT COUNT(*)

修改

哦,没关系,看起来你在一个单元格中存储一个逗号分隔列表。这是一个糟糕的做法顺便说一句。您可能只需要另一个MySQL表来正确存储它们。如果你决定不修复数据库schemat,虽然这对你有用:

$query = mysql_result(mysql_query("SELECT names FROM Sponsors WHERE id = '55'"));
$result = explode(',',$query);
$total = count($result);

PHP Manual (explode)

答案 1 :(得分:1)

尝试

$query = mysql_result(mysql_query("SELECT names FROM tblLeidingAgenda WHERE id = '55'"), 0, 'names');
$result = explode(',' $query);
$total = count($result);

答案 2 :(得分:0)

感谢@PaulPRO,我来到了这个解决方案

$query = mysql_result(mysql_query("SELECT afwezig FROM tblLeidingAgenda WHERE id = '55'"),0);
$result = str_replace(", ", " ", $query);
$total = str_word_count($result);

我不确定这是否正确,随时纠正我