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