對不起,標題非常含糊。MySQL和PHP - 僅列出以前未列出的項目
基本上,我被一些東西卡住了。我有一個充足的工作腳本,從兩個表中列出。
它拉事件
事件1
事件2
事件3
事件4
事件5
事件6
現在,用戶需要的T恤衫的列表「整體」事件。他們是志願者,他們有T恤。當他們提交可以幫助管家的事件時,他們選擇他們的T恤尺寸,以便我可以訂購。
然後我得到一個列表
事件1:
小=計數
中等=計數
大=計數
當志願者進入他們的T恤尺寸,它被保存在他們的簡介。這些事件存儲在一個名爲events的表中。
但是,該部分並不重要。我可以很容易地將它列入上面,並在一定程度上確實計算正確。問題是,比如說我有一個叫Bob的志願者。 Bob的T恤大小很小。他只是爲第一場活動提供志願服務。沒有其他志願者參加了這個日子,他們可以幫助他們。所以我會列出的所有事件,唯一的面積將等於0以外的任何事情都是
事件1 - 小= 1,中等= 0,大= 0 事件2 - 小= 0,中等= 0,大= 0 等等等等....
反正說Bob決定,以幫助在事件1,2,3和5
它然後顯示 事件1 - 小= 1,中等= 0,Large = 0
Event 2 - Small = 1,Medium = 0,Large = 0
Event 3 - Small = 1,Medium = 0,Large = 0
事件4 - 小= 0,中等= 0,大型= 0
事件5 - 小= 1,中= 0,大型= 0
事件6 - 小= 0,中等= 0,大型= 0
它示出了,因爲查詢是基本上
SELECT u.id, u.userid, u.eventid, u.helping, i.userid, i.tshirt_size FROM helpers AS u LEFT JOIN profiles AS i ON u.userid=i.userid WHERE `eventid`='$eventid' AND u.helping='1' AND i.tshirt_size='$size'
我然後回聲與一個功能,如 getTShirtCount(「事件ID」,「小」);
事件ID是由MySQL Fetch Array循環拾取的,循環了我在數據庫中的事件(這也是事件ID從中拾取的事件)。
事件1 = ID:1
事件2 = ID:2
等等。
當他們提交他們可以幫助的事件,它進入一個 「幫手」 表,像 用戶ID = 101
事件ID = 1
幫助= 1
用戶ID = 101
事件ID = 2
幫助= 1
用戶ID = 101
的EventID = 3
幫助= 1
用戶ID = 101
事件ID = 4
幫助= 0
等...
==我想DO ==
IF的用戶Bob,一直在事件1中列出 - 我不需要將他計入任何其他事件。伯爵是這樣的,我可以把正確數量的T恤衫分發給每個活動。所以它可能會告訴我我需要50個小,10個大,40箇中等。
如果鮑勃參加第一項活動,那麼他將會拿到他的T恤,所以他不需要我在其他任何事件中帶上另一個(因此被計數)。
所以,我基本上只需要將它添加到num_rows計數,如果以前的任何事件,「Bob」沒有「Helping ='1'」。
我希望我解釋得很好。
任何人都可以幫忙嗎?
不同事件的襯衫是一樣的嗎?你之前的活動是什麼意思?早些時候?或者不管他選擇了多少事件,你只想爲一個用戶計算一件襯衫? – piotrm 2012-02-21 21:49:23
這些襯衫都是一樣的每個事件。以前的事件,我的意思是事件2是在事件3等之後......並且是的,如果他們根據上面的查詢參加每個事件 - 它將對每個事件的「小」計數1。如果他們在事件1,我不希望它被計入任何其他事件中,因爲我已經爲他們爲事件1帶了一件T恤。 – TheMonk 2012-02-21 21:57:25
事件2在事件3之後基於什麼? – piotrm 2012-02-21 22:13:24