Jump to content

IF STATEMENT HELP


rascle

Recommended Posts

Hi

i have created a calendar from a table:

 

Calendar: October 2009
<table width=300 border="1">
<tr>
<th><a href="calendar.php"><</a></th>
<th>M</th>
<th>T</th>
<th>W</th>
<th>T</th>
<th>F</th>
<th>S</th>
<th>S</th>
<th><a href="calendar.php?nov09">></a></th>
</tr>
<tr> 
<td></td>
<td>  </td>
<td> </td>
<td> </td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td></td>
<td>5 </td>
<td>6</td>
<td>7 </td>
<td>8 </td>
<td>9 </td>
<td>10 </td>
<td>11 </td>
</tr>
<tr>
<tr>
<td></td>
<td>12 </td>
<td>13 </td>
<td>14</td>
<td>15 </td>
<td>16 </td>
<td>17 </td>
<td>18 </td>
</tr>
<tr>
<td></td>
<td>19 </td>
<td>20 </td>
<td>21 </td>
<td>22</td>
<td>23 </td>
<td>24 </td>
<td>25 </td>
</tr>
<tr>
<td></td>
<td>26 </td>
<td>27 </td>
<td>28 </td>
<td>29 </td>
<td>30 </td>
<td>31 </td>
<td>  </td>
</tr>
</table>

The table works fine.

But i have a mysql table and it has some dates in it, so for example it has 01102009 which is the 1st October 2009 and it has another date eg. 12102009 which is the 12th October 2009 etc. I want it so that the table recognises the dates and the dates are shown in blue. I was going to do this like this:

$booked = mysql_query("SELECT * FROM calendar WHERE `company` = '$logged[company]'");
$booked = mysql_fetch_array($booked);
echo'
<table border="1">
<tr>
<td>M</td>
<td>T</td>
<td>W</td>
<td>T</td>
<td>F</td>
<td>S</td>
<td>S</td>
</tr>
<tr>
<td>';
if($booked[datebooked] == "01102009"){
echo"<font color='blue'>01</font>";
}
else{
echo"01";
}
echo'</td>
<td>';
if($booked[datebooked] == "02102009"){
echo"<font color="blue">02</font>";
}
else{
echo"02";
}
echo'</td>
<td>03</td>
<td>04</td>
<td>05</td>
</tr>
</table>
';

And so on, this works the first time so 01 would be blue, but 12 would be normal, i know this is something to do with it only being able to select one at a time, but i dont know how to fix it, any ideas.

I could maybe use a while loop if anyone hasnt got any better ideas???

Thanks In Advance

Rhys

Link to comment
Share on other sites

Ok, no offense, but you're doing this completely the wrong way. You should be making it so that the table is generated automatically, rather than you typing it up. Anyway, show us the code that you would put in for 12, and let's see why it's not working

Link to comment
Share on other sites

I would like to have it automatically generated but i dont know how to do it. And for the 2th is the same as the rest would be:

<td>';
if($booked[datebooked] == "11102009"){
echo'<font color="blue">11</font>';
}
else{
echo"11";
}
echo'</td>
<td>';
if($booked[datebooked] == "12102009"){
echo'<font color="blue">12</font>';
}
else{
echo"12";
}
echo'</td>
<td>';
if($booked[datebooked] == "13102009"){
echo'<font color="blue">13</font>';
}
else{
echo"13";
}

 

 

Link to comment
Share on other sites

If you can make me one that would be great thanks.

But when you said "Change echo"12"; to echo $booked[datebooked];" i dont see what you mean...

i cant see this doing anything to the script other than changing the date to 14102009???

Thanks

Link to comment
Share on other sites

It's for informational purposes. You said if($booked[datebooked] == "12102009") doesn't work for the twelthed day, correct? So we want to know what it does equal, if not 12102009. If we know what it DOES echo, then we know the problem

Link to comment
Share on other sites

$days_in_month = 31;
$booked_date = substr($booked['datebooked'],0,2);
for($i = 1; $i < $days_in_month; $i++)
{
    echo '<td>';
    $num = str_pad($i,2,'0',STR_PAD_LEFT);
    echo ($booked_date == $i) ? '<font color="blue">'.$num.'</font>' : $num;
    echo '</td>';
} 

That should get you started

Link to comment
Share on other sites

I must have been really bored

 

<?php

$Month = 10;
$Year = 2009;
$i = 1;
$num = cal_days_in_month(CAL_GREGORIAN, $Month, $Year);

echo "<table>
<tr>
<td>
Mon
</td>
<td>
Tue
</td>
<td>
Wed
</td>
<td>
Thur
</td>
<td>
Fri
</td>
<td>
Sat
</td>
<td>
Sun
</td>
</tr>";

$booked['datebooked'] = "12102009";

$i = 1;
$Timestamp = mktime(0, 0, 0, $Month, 1, $Year);
$Day = date("D", $Timestamp);
echo date("N", $Timestamp);

while($i < date("N", $Timestamp))
{
$i ++;
echo "<td> </td>";
}

if(date("N", $Timestamp) == 7)
{
echo "</tr><tr>";
}

for($i = 1; $i <= $num; $i++)
{
$Timestamp = mktime(0, 0, 0, $Month, $i, $Year);
$Day = date("d", $Timestamp);
echo "<td>";
$Fulldate = $Day . $Month . $Year;

if($booked['datebooked'] == $Fulldate)
	{
	echo "<font color='blue'>$Day</font>";
	}
else
	{
	echo $Day;
	}

echo "</td>";

if(date("D", $Timestamp) == "Sun")
	{
	echo "</tr>";
	if($i != $num)
		{
		echo "<tr>";
		}
	}
}

echo "</table>";

?>

Link to comment
Share on other sites

If i change the code to:

<?php

$Month = 10;
$Year = 2009;
$i = 1;
$num = cal_days_in_month(CAL_GREGORIAN, $Month, $Year);

echo "<table>
<tr>
<td>
Mon
</td>
<td>
Tue
</td>
<td>
Wed
</td>
<td>
Thur
</td>
<td>
Fri
</td>
<td>
Sat
</td>
<td>
Sun
</td>
</tr>";
$booked = mysql_query("SELECT * FROM calendar WHERE `companyname` = '$logged[companyname]'");
$booked = mysql_fetch_array($booked);
echo $booked['datebooked'];

$i = 1;
$Timestamp = mktime(0, 0, 0, $Month, 1, $Year);
$Day = date("D", $Timestamp);
echo date("N", $Timestamp);

while($i < date("N", $Timestamp))
{
$i ++;
echo "<td> </td>";
}

if(date("N", $Timestamp) == 7)
{
echo "</tr><tr>";
}

for($i = 1; $i <= $num; $i++)
{
$Timestamp = mktime(0, 0, 0, $Month, $i, $Year);
$Day = date("d", $Timestamp);
echo "<td>";
$Fulldate = $Day . $Month . $Year;

if($booked['datebooked'] == $Fulldate)
	{
	echo "<font color='blue'>$Day</font>";
	}
else
	{
	echo $Day;
	}

echo "</td>";

if(date("D", $Timestamp) == "Sun")
	{
	echo "</tr>";
	if($i != $num)
		{
		echo "<tr>";
		}
	}
}

echo "</table>";

?>

Note i changed $booked['datebooked'] = "12102009"; to $booked = mysql_query("SELECT * FROM calendar WHERE `companyname` = '$logged[companyname]'");

$booked = mysql_fetch_array($booked);

echo $booked['datebooked']; it doesnt work. What do i do to get the dates from the MySQL table to show on the calendar???

Thanks Again :)

Rhys

 

Link to comment
Share on other sites

Ok i have read the w3school tutorial and the only thing i can think of doing is to create a while loop to make see if the date is in the table and if it is then to change it to the colour blue. But how would i write this in the calendar script????

Thanks

Link to comment
Share on other sites

Ok thanks i am currently using:

<?php
include "headinfo.php";


$Month = 10;
$Year = 2009;
$i = 1;
$num = cal_days_in_month(CAL_GREGORIAN, $Month, $Year);

echo "<table>
<tr>
<td>
Mon
</td>
<td>
Tue
</td>
<td>
Wed
</td>
<td>
Thur
</td>
<td>
Fri
</td>
<td>
Sat
</td>
<td>
Sun
</td>
</tr>";
$booked = mysql_query("SELECT * FROM calendar WHERE `companyname` = '$logged[companyname]'");
$booked = mysql_fetch_array($booked);
$i = 1;
$Timestamp = mktime(0, 0, 0, $Month, 1, $Year);
$Day = date("D", $Timestamp);
echo date("N", $Timestamp);

while($i < date("N", $Timestamp))
{
$i ++;
echo "<td> </td>";
}

if(date("N", $Timestamp) == 7)
{
echo "</tr><tr>";
}

for($i = 1; $i <= $num; $i++)
{
$Timestamp = mktime(0, 0, 0, $Month, $i, $Year);
$Day = date("d", $Timestamp);
echo "<td>";
$Fulldate = $Day . $Month . $Year;

if(in_array($Fulldate, $booked))
	{
	echo "<font color='blue'>$Day</font>";
	}
else
	{
	echo $Day;
	}

echo "</td>";

if(date("D", $Timestamp) == "Sun")
	{
	echo "</tr>";
	if($i != $num)
		{
		echo "<tr>";
		}
	}
}

echo "</table>";

?>

But i am still only getting 14 (the first row) turning blue!!!!

What am i doing wrong??!

Thanks

Rhys

Link to comment
Share on other sites

This is the output:

Mon  Tue  Wed  Thur  Fri  Sat  Sun 

Array

(

    [0] => ABC

    [companyname] => ABC

    [1] => Jose

    [name] => Jose

    [2] => 19102009

    [datebooked] => 19102009

)

 

Mon  Tue  Wed  Thur  Fri  Sat  Sun

 

it does not display the dates

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.