I finally got the function to work.  However I have a problem with
another function.  It is almost exactly like the origional function
but in this function I am determining the days instead of the month. 
I made the same changes to the days function as I did to the month
function.  However no value is being set to be returned. I can't find
my error. My function is below:

function determineDay ()
        {
                $return = "";
                $query1 = mysql_query("SELECT months FROM Month WHERE m_id =
month(curdate())");
                $query2 = mysql_query("SELECT dayNum FROM Days WHERE dayNum =
day(curdate())");
                $query3 = mysql_query("SELECT year FROM Year WHERE year = 
year(curdate())");
                
                $query1_data = mysql_fetch_assoc($query1);
                $query2_data = mysql_fetch_assoc($query2);
                $query3_data = mysql_fetch_assoc($query3);
                
                switch ($query1_data["months"])
                {
                        case "January":
                        case "March":
                        case "May":
                        case "July":
                        case "August":
                        case "October":
                        case "December":
                                if ($query2_data["dayNum"] == 31)
                                        $return .= "SELECT dayNum FROM Days";
                                else
                                        $return .= "SELECT dayNum FROM Days 
WHERE dayNum >= day(curdate()) +1";
                        break;
                        case "February":
                                if ($query2_data["dayNum"] == 28 || 
$query2_data["dayNum"] == 29)
                                {
                                        if ($query2_data["dayNum"] == 28)
                                                $return .= "SELECT dayNum FROM 
Days WHERE dayNum <= 28";
                                        else
                                                $return .= "SELECT dayNum FROM 
Days WHERE dayNum <= 29";
                                }
                                else
                                {
                                        if (($query3_data["year"] % 4 == 0) 
&&($query3_data["year"] % 100
!= 0 || $query3_data["year"] % 400 == 0))
                                                $return .= "SELECT dayNum FROM 
Days WHERE dayNum >=
day(curdate()) +1 AND dayNum <=28";
                                        else
                                                $return .= "SELECT dayNum FROM 
Days WHERE dayNum >=
day(curdate()) +1 AND dayNum <=29";
                                }
                        break;
                        case "April":
                        case "June":
                        case "September":
                        case "November":
                                if ($query2_data["dayNum"] == 30)
                                        $return .= "SELECT dayNum FROM Days 
WHERE dayNum <= 30";
                                else
                                        $return .= "SELECT dayNum FROM Days 
WHERE dayNum >=
day(curdate())+1 AND dayNum <= 30";
                        break;
                }
                return $return;
        }

Here is the code for where I output the contents of the query

        $day = $this->determineDay();
        $Day_query = mysql_query($day);
        while ($a = mysql_fetch_assoc($Day_query))
        {
                $form .=" <option 
value={$a["dayNum"]}>{$a["dayNum"]}</option>\n";
        }
        $form .="                                       </select>\n";

If anyone can find my error please let me know.  I have looked at this
for about an hour and I can't figure it out.

Thanks,

Paul
On 3/27/06, Brady Mitchell <[EMAIL PROTECTED]> wrote:
> > I have done the following to my code hoping that the fix would work
> >
> > $query1 = mysql_query("SELECT months FROM Month WHERE m_id =
> month(curdate())");
> > //echo $query1 . "<br />";
> >
> > $query1_data = mysql_fetch_assoc($query1);
> >               echo $query1_data . "<br />";  returns Array
> > (The word that is)
>
> Use:  print_r($query1_data) or var_dump($query1_data) to see everything
> in the array.  If you want to use echo, you'd have to echo each index of
> the array one at a time with something like:  echo $query1_data[0];
>
> http://php.net/echo
> http://php.net/print_r
> http://php.net/var_dump
>
> > switch ($query1_data)
> > {
>
> You can't switch on an entire array.  Switch is used to check the value
> of a variable (which could be an index of the array, but not the entire
> array).
>
> Something like this should work:
>
> switch($query1_data[months])
> {
>
> }
>
> http://php.net/switch
>
> In your original posting you have lines like the following in your
> switch statement:
>
> > if($query2 == 31)
>
> As someone mentioned, mysql_query returns a resource ID, you then have
> to use mysql_fetch_assoc (or one of the other mysql_fetch_* functions)
> to get an array that you can use as you are trying to do.
>
> So after doing:  $query2_data = mysql_fetch_assoc($query2);
>
> You could do:  if($query2_data[dayNum] == 31)
>
> In your switch statement you are checking for the full name of the
> month, but your query will be returning the month number.  Since you
> don't have a default case on your switch statement, $return is never
> being set, so " $month = $this->determineMonth(); " is not setting
> $month to anything, which is why you are getting error messages.
>
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
>
> Brady
>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to