|
Posted by Jerry Stuckle on 09/15/06 14:05
Jeff Gardner wrote:
> Greetings:
>
> I am attempting to get conditional output based on POSTed form data.
> If the posted value is either the key or value of an array, $x=key and
> $q=foo. elseif it is neither key nor value(I tried || too) , $q=bar.
> Even though $x is properly assigned the new value, $q always ends up
> being bar. Abstractions aside, here's the code: (note ## comments
> added to this post)
>
> <snip>
> $search = $_POST[search];
> $sort = $_POST[sortby];
> $states = array(
> "AL" => "Alabama",
> "AK" => "Alaska",
> "AZ" => "Arizona",
> ...
> );
> ##echo $search here outputs the POSTed input
> foreach ($states as $key => $value)
>
> if ($search == $value || $search == $key) {
> $search = $key;
> ##echo $search here outputs the new value, when applicable
> $q = "
> SELECT
> organization.*, contacts.*
> FROM organization
> LEFT JOIN contacts
> ON organization.org_id = contacts.org_id
> OR organization.org_id = 0
> WHERE organization.state
> = '$search'
> OR contacts.state
> = '$search'
> ORDER BY '$sort' ASC";
>
> } elseif ($search != $value && $search != $key) { ##I tried || here too.
> ##echo $search here outputs the new value too, when applicable
> $q = "
> SELECT
> CONCAT(contacts.firstname,' ',contacts.lastname) AS fullname,
> organization.*, contacts.*
> FROM organization
> LEFT JOIN contacts
> ON organization.org_id = contacts.org_id
> OR organization.org_id = 0
> WHERE organization.state
> LIKE '%$search%'
> OR organization.orgname
> LIKE '%$search%'
> OR contacts.state
> LIKE '%$search%'
> OR contacts.lastname
> LIKE '%$search%'
> OR contacts.firstname
> LIKE '%$search%'
> ORDER BY '$sort' ASC";
> }
>
> $result = mysql_query($q)
> or die('Query Failed: ' . mysql_error());
> </snip>
>
> Where is this evaluation breaking down and why? Thanks in advance.
You're problem is you are setting $q each time through the loop, then
using it outside of the loop. $q will always have the last value set in
the loop.
If $search matched the last state in your list, you would get the value
from your "then" clause. Any other time you'll get the value from your
"then" clause.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Navigation:
[Reply to this message]
|