2011-08-25 66 views
1

我在我的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> '; 
      } 
    } 
+2

正常化您的数据库。一个表格用于事件,一个用于赞助商名称,另一个用于将两者连接在一起(事件 - 赞助商,每行一组,每个事件多行)。 – Arjan

回答

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)

+0

谢谢你的代码片段,但是我得到一个'Array'返回。所以结果是'Array'。我应该取它吗? – Michiel

+1

@Michiel这就是爆炸做的事情,它返回一个数组,看看爆炸手册。 'count()'计算数组中元素的数量,所以$ total应该包含名称的数量。 (它会包含你的字符串加上1的逗号数) – Paulpro

+0

好的,下一个错误:)'警告:mysql_result()需要至少2个参数,1在/customers/9/7/5/***.php中给出在第5行'我认为这是通过添加像',0,'names''正确的? 顺便说一下,仍然得到'数组'结果...即使使用'explode' – Michiel

1

尝试

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

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

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

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

相关问题