Here's a webpage I designed (with Loftboy's help) for an online trading card application. To see this in action goto http://mtgotradingpost.com/login/login.cfm and login with user/pass: test/test.

Here's the question: can this page be done better? I know the checkboxes are ugly - what I'm talking about is the underlying SQL Query. Anything to make is shorter or smoother?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<!-- <br>
<input type="checkbox" name="red" value=1<cfif isDefined("form.red") and form.red eq 1> CHECKED</cfif>>
--->

<form name="form" method="post" action=""
<fieldset><legend>Search Parameters</legend>
<input type="checkbox" name="white" value="white"<cfif isDefined("form.white") and trim(form.white) eq "white"> CHECKED</cfif>>White
<input type="checkbox" name="blue" value="blue"<cfif isDefined("form.blue") and trim(form.blue) eq "blue"> CHECKED</cfif>>Blue
<input type="checkbox" name="black" value="black"<cfif isDefined("form.black") and trim(form.black) eq "black"> CHECKED</cfif>>Black
<input type="checkbox" name="red" value="red"<cfif isDefined("form.red") and trim(form.red) eq "red"> CHECKED</cfif>>Red
<input type="checkbox" name="green" value="green"<cfif isDefined("form.green") and trim(form.green) eq "green"> CHECKED</cfif>>Green
<input type="checkbox" name="colorless" value="colorless"<cfif isDefined("form.colorless") and trim(form.colorless) eq "colorless"> CHECKED</cfif>>Colorless
<input type="checkbox" name="gold" value="gold"<cfif isDefined("form.gold") and trim(form.gold) eq "gold"> CHECKED</cfif>>Multicolor<br>
<input type="checkbox" name="lands" value="lands"<cfif isDefined("form.lands") and trim(form.lands) eq "lands"> CHECKED</cfif>>Lands
<input type="checkbox" name="artifacts" value="artifacts"<cfif isDefined("form.artifacts") and trim(form.artifacts) eq "artifacts"> CHECKED</cfif>>Artifacts
<input type="checkbox" name="creatures" value="creatures"<cfif isDefined("form.creatures") and trim(form.creatures) eq "creatures"> CHECKED</cfif>>Creatures
<input type="checkbox" name="sorcery" value="sorcery"<cfif isDefined("form.sorcery") and trim(form.sorcery) eq "sorcery"> CHECKED</cfif>>Sorcery
<input type="checkbox" name="instants" value="instants"<cfif isDefined("form.instants") and trim(form.instants) eq "instants"> CHECKED</cfif>>Instants
<input type="checkbox" name="enchantments" value="enchantments"<cfif isDefined("form.enchantments") and trim(form.enchantments) eq "enchantments"> CHECKED</cfif>>Enchantments
</fieldset>
<br>
<br>
<table width="100%" border="1">
<tr>

<th scope="col"><div align="left"><input type="checkbox" name="mirrblock" value="mirrblock"<cfif isDefined("form.mirrblock") and trim(form.mirrblock) eq "mirrblock"> CHECKED</cfif>>Mirrodin Block</div></th>
<th scope="col"><div align="left"><input type="checkbox" name="onslblock" value="onslblock"<cfif isDefined("form.onslblock") and trim(form.onslblock) eq "onslblock"> CHECKED</cfif>>Onslaught Block</div></th>
<th scope="col"><div align="left"><input type="checkbox" name="odysblock" value="odysblock"<cfif isDefined("form.odysblock") and trim(form.odysblock) eq "odysblock"> CHECKED</cfif>>Odyssey</div></th>
<th scope="col"><div align="left"><input type="checkbox" name="invablock" value="invablock"<cfif isDefined("form.invablock") and trim(form.invablock) eq "invablock"> CHECKED</cfif>>Invasion Block </div></th>
</tr>
<tr>
<td><div align="left"><input type="checkbox" name="mirr" value="mirr"<cfif isDefined("form.mirr") and trim(form.mirr) eq "mirr"> CHECKED</cfif>>Mirrodin</div></td>
<td><div align="left"><input type="checkbox" name="onsl" value="onsl"<cfif isDefined("form.onsl") and trim(form.onsl) eq "onsl"> CHECKED</cfif>>Onslaught</div></td>
<td><div align="left"><input type="checkbox" name="odys" value="odys"<cfif isDefined("form.odys") and trim(form.odys) eq "odys"> CHECKED</cfif>>Odyssey</div></td>
<td><div align="left"><input type="checkbox" name="inva" value="inva"<cfif isDefined("form.inva") and trim(form.inva) eq "inva"> CHECKED</cfif>>Invasion</div></td>
</tr>
<tr>
<td><div align="left"><input type="checkbox" name="dark" value="dark"<cfif isDefined("form.dark") and trim(form.dark) eq "dark"> CHECKED</cfif>>Darksteel</div></td>
<td><div align="left"><input type="checkbox" name="legi" value="legi"<cfif isDefined("form.legi") and trim(form.legi) eq "legi"> CHECKED</cfif>>Legions</div></td>
<td><div align="left"><input type="checkbox" name="torm" value="torm"<cfif isDefined("form.torm") and trim(form.torm) eq "torm"> CHECKED</cfif>>Torment</div></td>
<td><div align="left"><input type="checkbox" name="plan" value="plan"<cfif isDefined("form.plan") and trim(form.plan) eq "plan"> CHECKED</cfif>>Planeshift</div></td>
</tr>
<tr>
<td><div align="left"><input type="checkbox" name="fifth" value="fifth"<cfif isDefined("form.fifth") and trim(form.fifth) eq "fifth"> CHECKED</cfif>>5th Dawn</div></td>
<td><div align="left"><input type="checkbox" name="scou" value="scou"<cfif isDefined("form.scou") and trim(form.scou) eq "scou"> CHECKED</cfif>>Scourge</div></td>
<td><div align="left"><input type="checkbox" name="judg" value="judg"<cfif isDefined("form.judg") and trim(form.judg) eq "judg"> CHECKED</cfif>>Judgement</div></td>
<td><div align="left"><input type="checkbox" name="apoc" value="apoc"<cfif isDefined("form.apoc") and trim(form.apoc) eq "apoc"> CHECKED</cfif>>Apocalypse</div></td>
</tr>
</table>

<INPUT type="submit" value="Search"> <INPUT type="Reset" value="Clear">

</form>

<!-- logic goes below here -->

<cfquery name="showmyCards" datasource="#dsn_name#" username="#dsn_login#"
password="#dsn_password#">

select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "X"
<cfif isdefined("form.white") and trim(form.white) EQ "white">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and users.username = "#getAuthUser()#"
and mycards.CardID = tblcards.CardID
and tblcards.ColorCode = "W"
</cfif>
<cfif isdefined("form.blue") and trim(form.blue) EQ "blue">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "U"
</cfif>
<cfif isdefined("form.black") and trim(form.black) EQ "black">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "B"
</cfif>
<cfif isdefined("form.red") and trim(form.red) EQ "red">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "R"
</cfif>
<cfif isdefined("form.green") and trim(form.green) EQ "green">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "G"
</cfif>
<cfif isdefined("form.colorless") and trim(form.colorless) EQ "colorless">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "A"
</cfif>
<cfif isdefined("form.gold") and trim(form.gold) EQ "gold">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.ColorCode = "Z"
</cfif>
<cfif isdefined("form.lands") and trim(form.lands) EQ "lands">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.SpellTypeID = "111"
</cfif>
<cfif isdefined("form.artifacts") and trim(form.artifacts) EQ "artifacts">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.SpellTypeID = "107"
</cfif>
<cfif isdefined("form.creatures") and trim(form.creatures) EQ "creatures">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.SpellTypeID = "104"
</cfif>
<cfif isdefined("form.sorcery") and trim(form.sorcery) EQ "sorcery">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.SpellTypeID = "109"
</cfif>
<cfif isdefined("form.instants") and trim(form.instants) EQ "instants">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.SpellTypeID = "110"
</cfif>
<cfif isdefined("form.enchantments") and trim(form.enchantments) EQ "enchantments">
union select mycards.userID, mycards.CardID, users.username, tblcards.CardTitle, tblcards.ColorCode, mycards.own, mycards.trade, tblcards.RulesText
from mycards, users, tblcards
where mycards.userID = users.userID
and mycards.CardID = tblcards.CardID
and users.username = "#getAuthUser()#"
and tblcards.SpellTypeID = "105"
and tblcards.SpellTypeID = "112"
</cfif>

ORDER BY users.username
</cfquery>

<cfset current_user = getAuthUser()>

<p>Currently displaying info for user:
<cfoutput>#current_user#</cfoutput><br>
Color Code:<br>
Black = B<br>
White = W<br>
Blue = U<br>
Green = G<br>
Colorless = A<br>
Multi-Color (Gold) = Z
</p>

<table width="100%" border="1">
<tr>
<th scope="col">Username</th>
<th scope="col">Card Name</th>
<th scope="col">Color</th>
<th scope="col">Number Owned</th>
<th scope="col">Number Looking For</th>
<th scope="col">Card Text</th>
</tr>
<cfoutput query="showmyCards">
<tr>
<td><div align="center">#username#</td></div>
<td><div align="center">#CardTitle#</td></div>
<td><div align="center">#ColorCode#</td></div>
<td><div align="center">#own#</td></div>
<td><div align="center">#trade#</td></div>
<td><div align="left">#RulesText#</td></div>
</tr>

</cfoutput>
</table>

</body>
</html>

BTW, the three tables referenced above are

mycards - contains the cards that individual users own
tblcards - contains details on each card
users - contains user login information

Please let me know your thoughts!

_________________
Jamie Price
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]

Reply via email to