そこで、2つのテーブルから名、姓、ドナータイプを取得しようとしています。基本的に、人は主要な「ドナータイプ」を持っています。つまり、それらが2つの異なるドナータイプである場合、ドナーテーブルに最高ランクのものを配置します。DonorandTypeテーブルに、残りすべてを配置します。したがって、彼らが理事会メンバー、卒業生、および親である場合、ドナーテーブルに理事会メンバーが表示され、次に他のテーブルに卒業生と親が表示されます。
最終的に、donorandtypeテーブル(それぞれ異なるタイプの数でテストするために4人しか入れません)のすべての人が継続的に表示されます。ただし、2011年(昨年度)を選択した場合、繰り返されません。ただし、2012年(今年度)はそうです。必要に応じて、sqlステートメントとwhileループに関する部分だけでなく、すべてのコードを表示できます。しかし、それは私の日付の制約の問題ではないと思います。
sqlステートメントにも日付の制約がありますが、それで違いが生じるとは思いません。基本的には会計年度をチェックするだけで、その年に寄付していない場合は表示されません。SQLステートメントのその部分がある場合とない場合で試してみましたが、違いはないようです。ですから、その部分は無視できると思います。
ドナーテーブル:
- DonorID(PK)
- ファーストネーム
- 苗字
- Eメール
- 電話
- DonorType(FK)
DonorTypeテーブル:
- DonorTypeID(PK)-これは、ドナータイプの2文字の略語です。例:卒業生の場合はAL
- DonorType-これらは各ドナーの名前で、合計8つです
- ランク-重要な基本ランク1、2、3など
DonorandTypeテーブル:
- DonorID(FK)
- DonorType(FK)
寄付表:
- DonationID(PK)
- 寄付金額
- 制限
- 説明
- DateReceived
- DonorID(FK)
わかりました。ドナーテーブルから名前と名前を取得します。次に、DonorandTypeテーブルからすべてのドナータイプをプルします。
// SQL query to interact with info from our database
$sql = mysql_query("
SELECT donor.FirstName, donor.LastName, donorandtype.DonorType
FROM donor, donortype, donorandtype, donations
WHERE donor.DonorID = donorandtype.DonorID
and donortype.DonorType = donorandtype.DonorType
and donations.Date_Received BETWEEN '" . $startdate . "' and '" . $enddate . "'
") or die (mysql_error());
// Establish the output variable
echo "<table border=\"1\" cellpadding=\"10\" >
<tr>
<th id='name'>Donor Name</th>
<th id'dontype'>Donor Type</th>
</tr>";
while($row = mysql_fetch_array($sql)){
$first_name = $row["FirstName"];
$last_name = $row["LastName"];
$donor_type = $row["DonorType"];
echo "
<tr>
<td> $first_name $last_name </td>
<td>$donor_type </td>
</tr>";
}
echo '</table>';
この部分は実際にテーブルに表示されます...それは言う必要がありますか?上記のコードから明らかだと思いますが、何でも。
DONOR'S TYPES
Donor Name Donor Type
Henry Hunt Alumni
Henry Hunt Board member
Paul Gates Past Parent
Winifred Gardner Parent
....
</trim>