2011-08-25 71 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); 

我不確定是否正確,請隨時糾正我

相關問題