你需要改變你的表結構:
id | dancerNumber | name
1 1 alex
2 1 clare
3 2 michael
4 2 rose
5 3 dalm
6 3 test
7 4 name
8 4 dana
SELECT COUNT(*) AS id FROM table
將返回8個舞者。如果這是你正在尋找的?
如果你想保持你的結構
那麼你需要做下面的SQL查詢
SELECT dancer1,
dancer2,
dancer3,
(CASE WHEN (dancer1 <> "" AND dancer1 IS NOT NULL) THEN 1 ELSE 0 END +
CASE WHEN (dancer2 <> "" AND dancer2 IS NOT NULL) THEN 1 ELSE 0 END +
CASE WHEN (dancer3 <> "" AND dancer3 IS NOT NULL) THEN 1 ELSE 0 END) AS COUNTER
FROM table
這將計算所有非空非空列,並在表的末尾添加計數器。這個櫃檯將包含你的結構舞者的數量。
與你的PHP代碼
$query = 'SELECT (CASE WHEN (dancer1 <> "" AND dancer1 IS NOT NULL) THEN 1 ELSE 0 END +
CASE WHEN (dancer2 <> "" AND dancer2 IS NOT NULL) THEN 1 ELSE 0 END +
CASE WHEN (dancer3 <> "" AND dancer3 IS NOT NULL) THEN 1 ELSE 0 END) AS COUNTER
FROM table'
$counter = mysql_query($query);
$num = mysql_fetch_array($counter);
$dancers = $num["COUNTER"];
echo "Total dancers: $dancers";
你能解釋一下表結構嗎?什麼是id 1和2的聯繫人?他們的姓/名?如果是這樣,你需要重新組織表結構。 count(*)將計算行數。你期望和接收什麼號碼? – Matt
如果你有這樣的編號列,這通常是一個很好的跡象表明你需要正確地規範你的數據庫結構 –
你有多少個舞者爲每個compitition? –