Help With PHP Calender Code

Hi Root,

Thanks for your reply to this, i think with what everything you said i should be able to get it working. Thank you especially for the examples in the code, so grateful. The troubleshooting with the "ad_type" is really key i know.

Yes, using the if, else if, else statement there i know wasn't the best method, but it was the only thing i could think of at the time to get it to do what i wanted. I will follow your instructions on this as you're right on when you said:

I'd prefer either to do all checking up front, and then you have everything setup before printing anything to screen.
For this to work right, i need to follow that guideline. Thank you again
 
I'd prefer either to do all checking up front, and then you have everything setup before printing anything to screen.

For this to work right, i need to follow that guideline. Thank you again

That's just a style guide line, (switch statements are easier to read than nested if statements.) it shouldn't affect whether it works. all it would do is make it obvious where you figure out the bulk of your "what colour will appointments be" vs the actual displaying of appointments, basically just separating out the logic stuff from the presentation stuff.

If you find it easier to read the other way around then keep doing what you are doing.

Each approach has its good/bad sides, plenty of people hate that figure out all the logic at the top approach as it separates logic from where it is used, and means that they are constantly scrolling up and down to find where variables are set vs what they do.
 
I suspect that the issue is:
if, else if , else should be if, else if, else if where you are sorting out your formatting.
(and that's why if either if statement is not satisfied, (and they cannot both be satisfied since they are different) the colour choice of the last else criteria is applied, and not what you wanted.


generally to trouble shoot.
For sure I'd follow what Joe said and just print out the stuff you retrieved from the table to make sure what is in the table, and what you are getting back are the same. (also bear in mind differences in the character encoding sets can make two characters that "look" the same "be" different. -and that should show up when you print out the results returned).


you can just add it into the stuff you;re printing like this:
Code:
 if (($row['ad_type']) == 'sidebar'){
                      $calendar.='<div class="event" style="background-color:#FFb2b2;">'.$event['title']. '(' . $row['ad_type'] .')</div>';
                                                    }
                    elseif (($row['ad_type']) == '728x90') {
                      $calendar.='<div class="event" style="background-color:#b2b2ff;">'.$event['title']. '(' . $row['ad_type'] .')</div>';
                                                            }
                        else {
                      $calendar.='<div class="event" style="background-color:#ff99ff;">'.$event['title']. '(' . $row['ad_type'] .')</div>';
                            }

something else...

personally I hate, if, else if, else nesting like that. especially inline with the stuff that you're actually trying to print out.

I'd prefer either to do all checking up front, and then you have everything setup before printing anything to screen.

so (either) set a variable to nothing, then change it, and if at the end it is not changed, then set to a default.
Code:
$format = "0";
if ($var = 1) { $format = #FFb2b2; }
if ($var = 2) { $format = #b2b2ff; }
if ($format = "0") { $format = #ff99ff; }
or start off wither it set to whatever the default is, and then change it if some condition is true.
Code:
$format = "#ff99ff";
if ($var = 1) { $format = #FFb2b2; }
if ($var = 2) { $format = #b2b2ff; }

then you're just doing
Code:
$row['ad_type']) == 'sidebar'){
                      $calendar.='<div class="event" style="background-color: . ' $format . ';">'.$event['title']. '(' . $row['ad_type'] .')</div>';
rather than all that nested if stuff. when it comes to the actual printing to screen.

or, (more preferably) use a switch/case statement.

PHP: switch - Manual




Technician, if you cannot help, and do not know the subject area, then just don't comment.

Where did you read that I wrote that I did not understand the subject area? Lol I have been coding is various languages since 82.
Maybe you shouldn't assume so much. When you assume you make as ASS out of U and ME.;)
I could have given an answer but I don't think it's ethical to do a kid's homework for them.
 
Last edited:
Where did you read that I wrote that I did not understand the subject area? Lol I have been coding is various languages since 82.
Maybe you shouldn't assume so much. When you assume you make as ASS out of U and ME.;)
I could have given an answer but I don't think it's ethical to do a kid's homework for them.
Maybe I should have said or instead of and.

Lets say that you have a habit of derailing some threads with bad information where it is clear you don't know what you're talking about, but keep talking anyway.

Lets put it this way:

If you do not want to help someone then don't, but don't tell them to go elsewhere; just don't post.

I find it questionable whether it is more or less ethical to help someone with their homework here, or tell them that there are better places to get their homework done for them. - Basically, if you wanted someone to do their own homework, some advice like joe said printing out variable doing debug steps through the program is far more useful than saying, go ask the same question on a specialist forum, or go buy a product...

so again, either offer some help, or don't.

if you cannot help, whether that is because you don't know the subject area, or wonder whether the poster is a child that needs help with homework and your ethics are too strong to help them then just don't write anything...


This is supposed to be a place where people can ask for help.
whilst nobody can force you to help with the correct answer, it's not a terrible request to say that if you don't want to write a helpful answer, then don't write anything.

And often it is more difficult to offer help to someone whilst other people take the thread all over the place but post nothing of substance.


As far as making an ass of myself, (maybe so!) but, I checked your post history, you've seemingly never helped anyone with any issue in the programming sub forum in the year you've been here.
all I'm going to say is: on the internet talk is cheap. whether or not you say you have been coding since before I was born is irrelevant, put up, or shut up.
 
Maybe you should.
You are completely wrong in saying I told them to go elsewhere. Read or don't, but don't misread. AND certainly don't misquote me. My advice was to try different methods and learn it better themselves. My second post made the observation that a php forum might back a wiser choice...meaning that they could learn how to do it themselves instead of being handed one possible answer that was obviously not the best possible one.
So, in point of fact, I did offer help. You just didn't like the help I offered and that is irrelevant as I was not helping you but the OP.
Sometimes it's best to comment on the original post and not comment on others comments to that post just to stay on topic.
Anyhow I am glad they got the answer and sorry they didn't learn how to do it better than that themselves. There is a much more elegant and simple method they could have figured out of someone didn't feel like this was a place to show off but didn't fully understand the best possible way to solve the problem. They were led down the garden path as it were and diverted from learning the best possible method.

To paraphrase you, let's put it this way: try teaching the person to fish rather than just giving them a small underfed mackerel because that's all you know how to catch.
They just might learn to catch a bigger fish than you can.
 
Still waiting for you to show the best possible method...

As I said: put up, or shut up.

Since you won't shut up, put your money where your mouth is, prove you know best, how should it be done?


All you've done so far is prove you know how to talk a lot of air with no substance behind it, then stamp your feet cry and finally run away when asked to prove yourself.
 
Have you tried the echo command to show the value of the variable on screen just before the IF statement to see what the value actually is?
 
Back
Top Bottom