Updated date:

Simple Event calendar (PHP, MySQL)

Author:

Create a Useful Event Calendar using PHP and MySQL

We will create a useful event calendar using PHP and MySQL and a sprinkle of javascript/ CSS for functionality and look.

//data base structure

CREATE TABLE IF NOT EXISTS `calTbl` (
`calID` int(11) NOT NULL auto_increment,
`calName` varchar(65) NOT NULL,
`calDesc` varchar(255) NOT NULL,
`calDate` varchar(11) NOT NULL,
`calStamp` datetime NOT NULL,
PRIMARY KEY (`calID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;

True to past examples given here, we will create something that relies on one page to do all the work on its own, no outside files outside of calling the form that inserts the events into the database.

First off:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

Just create the doc in whatever you work in Dreamweaver etc.

Next we create the JS functions that do alot of the work:

<script>

//This does what is says go to the last month


function goLastMonth(month, year){
// If the month is January, decrement the year
if(month == 1){
--year;
month = 13;
}
document.location.href = '<?=$_SERVER['PHP_SELF'];?>?month='+(month-1)+'&year='+year;

}

//This does what is says go to the next month
//next function
function goNextMonth(month, year){
// If the month is December, increment the year
if(month == 12){
++year;
month = 0;
}

document.location.href = '<?=$_SERVER['PHP_SELF'];?>?month='+(month+1)+'&year='+year;
}
//This function is used on the form to control the amount of characters the input form will allow
function remChars(txtControl, txtCount, intMaxLength)
{
if(txtControl.value.length > intMaxLength)
txtControl.value = txtControl.value.substring(0, (intMaxLength-1));
else
txtCount.value = intMaxLength - txtControl.value.length;
}
//This function checks to make sure all form values are filled in before the submit button is given to the user
function checkFilled() {
var filled = 0
var x = document.form1.calName.value;
//x = x.replace(/^\s+/,""); // strip leading spaces
if (x.length > 0) {filled ++}

var y = document.form1.calDesc.value;
//y = y.replace(/^s+/,""); // strip leading spaces
if (y.length > 0) {filled ++}

if (filled == 2) {
document.getElementById("Submit").disabled = false;
}
else {document.getElementById("Submit").disabled = true} // in case a field is filled then erased

}

</script>

Now lets get into the scripting:

// Get values from query string
$day = (isset($_GET["day"])) ? $_GET['day'] : "";
$month = (isset($_GET["month"])) ? $_GET['month'] : "";
$year = (isset($_GET["year"])) ? $_GET['year'] : "";

What I am using with the above variables is using something called a ternary operator, just a shorcut to see if something is true or false:

i.e. $day = (isset($_GET["day"])) ? $_GET['day'] : "";

(isset($_GET["day"])) this condition is asking if this is SET

The ? mark divides the functionality into two phases

$_GET['day'] this value will hold true if the above condition is met

The : mark separates the true from false value.

"" this declares the variable to be empty if it not created by the $_GET querystring.

I know sometimes it takes a bit to get used to, but remember it is a good shortcut for a longer if/else condition.

function hiLightEvt($eMonth,$eDay,$eYear){
//$tDayName = date("l");
$todaysDate = date("n/j/Y");
$dateToCompare = $eMonth . '/' . $eDay . '/' . $eYear;
if($todaysDate == $dateToCompare){
//$aClass = '<span>' . $tDayName . '</span>';
$aClass='class="today"';
}else{
//$dateToCompare = $eMonth . '/' . $eDay . '/' . $eYear;
//echo $todaysDate;
//return;
$sql="select count(calDate) as eCount from calTbl where calDate = '" . $eMonth . '/' . $eDay . '/' . $eYear . "'";
//echo $sql;
//return;
$result = mysql_query($sql);
while($row= mysql_fetch_array($result)){
if($row['eCount'] >=1){
$aClass = 'class="event"';
}elseif($row['eCount'] ==0){
$aClass ='class="normal"';
}
}
}
return $aClass;

The above function grabs the events from our data base and matches it to a date that actually has an event. When it does that it matches the class for that day that event will be printed to the screen and the cell will be highlighted.

This is our calendar code, html with sprinklings of PHP and JS function calls (the ones we created earlier)

<table width="350" cellpadding="0" cellspacing="0">
<tr>
<td width="50" colspan="1">
<input type="button" value=" < " onClick="goLastMonth(<?php echo $month . ", " . $year; ?>);">
</td>
<td width="250" colspan="5">
<span class="title"><?php echo $monthName . " " . $year; ?></span><br>
</td>
<td width="50" colspan="1" align="right">
<input type="button" value=" > " onClick="goNextMonth(<?php echo $month . ", " . $year; ?>);">
</td>
</tr>
<tr>
<th>S</td>
<th>M</td>
<th>T</td>
<th>W</td>
<th>T</td>
<th>F</td>
<th>S</td>
</tr>
<tr>
<?php
for($i = 1; $i < $numDays+1; $i++, $counter++){
$dateToCompare = $month . '/' . $i . '/' . $year;
$timeStamp = strtotime("$year-$month-$i");
//echo $timeStamp . '<br/>';
if($i == 1){
// Workout when the first day of the month is
$firstDay = date("w", $timeStamp);
for($j = 0; $j < $firstDay; $j++, $counter++){
echo "<td>&nbsp;</td>";
}
}
if($counter % 7 == 0){
?>
</tr><tr>
<?php
}
?>
<!--right here--><td width="50" <?=hiLightEvt($month,$i,$year);?>><a href="<?=$_SERVER['PHP_SELF'] . '?month='. $month . '&day=' . $i . '&year=' . $year;?>&v=1"><?=$i;?></a></td>
<?php
}
?>
</table>

Notice:

onClick="goNextMonth(<?php echo $month . ", " . $year; ?>);

Look at the parameters inside the JS function, they are showing the month and the year, the precise vars we need to do business with in our JS, these values are spit out after the page is called and the PHP prints them out, we cannot do anything without the PHP participating in these parameters.

The following snippet does all the insertion of the new events:

<?php
if(isset($_GET['v'])){
if(isset($_POST['Submit'])){
$sql="insert into calTbl(calName,calDesc,calDate,calStamp) values('" . $_POST['calName'] ."','" . $_POST['calDesc'] . "','" . $_POST['calDate'] . "',now())";
mysql_query($sql);
}
$sql="select calName,calDesc, DATE_FORMAT(calStamp, '%a %b %e %Y') as calStamp from calTbl where calDate = '" . $month . '/' . $day . '/' . $year . "'";
//echo $sql;
//return;

$result = mysql_query($sql);
$numRows = mysql_num_rows($result);
?>

You might notice in bold I usually test the SQL before I run so I can catch errors.

Here is the last of the page:

$sql="select calName,calDesc, DATE_FORMAT(calStamp, '%a %b %e %Y') as calStamp from calTbl where calDate = '" . $month . '/' . $day . '/' . $year . "'";
//echo $sql;
//return;
$result = mysql_query($sql);
$numRows = mysql_num_rows($result);
?>
<a href="<?=$_SERVER['PHP_SELF'];?>?month=<?=$_GET['month'] . '&day=' . $_GET['day'] . '&year=' . $_GET['year'];?>&v=1&f=true">New Event</a><br/>
<?php
if(isset($_GET['f'])){
include 'calForm.php';
}
if($numRows == 0 ){
echo '<h3>No Events</h3>';
}else{
//echo '<ul>';
echo '<h3>Events Listed</h3>';
while($row = mysql_fetch_array($result)){
?>
<div class="output">
<h5><?=$row['calName'];?></h5>
<?=$row['calDesc'];?><br/>
Listed On: <?=$row['calStamp'];?>
</div>
<?php
}
}
}
?>

The above does quite a bit for such a little snippet, it selects all the records based on date, creates a link to call the form to enter the event, gives a little feedback on it if nothing is there, and also prints to the screen the events that correspond to the date call.

Whew!

Here is the code in its entirety:

<?php
//db conn hardcode or include whichever you like
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
function goLastMonth(month, year){
// If the month is January, decrement the year
if(month == 1){
--year;
month = 13;
}
document.location.href = '<?=$_SERVER['PHP_SELF'];?>?month='+(month-1)+'&year='+year;
}
//next function
function goNextMonth(month, year){
// If the month is December, increment the year
if(month == 12){
++year;
month = 0;
}
document.location.href = '<?=$_SERVER['PHP_SELF'];?>?month='+(month+1)+'&year='+year;
}

function remChars(txtControl, txtCount, intMaxLength)
{
if(txtControl.value.length > intMaxLength)
txtControl.value = txtControl.value.substring(0, (intMaxLength-1));
else
txtCount.value = intMaxLength - txtControl.value.length;
}

function checkFilled() {
var filled = 0
var x = document.form1.calName.value;
//x = x.replace(/^\s+/,""); // strip leading spaces
if (x.length > 0) {filled ++}

var y = document.form1.calDesc.value;
//y = y.replace(/^s+/,""); // strip leading spaces
if (y.length > 0) {filled ++}

if (filled == 2) {
document.getElementById("Submit").disabled = false;
}
else {document.getElementById("Submit").disabled = true} // in case a field is filled then erased

}

</script>
<style>
body{
font-family:Georgia, "Times New Roman", Times, serif;
font-size:12px;
}
.today{
/*background-color:#00CCCC;*/
font-weight:bold;
background-image:url(calBg.jpg);
background-repeat:no-repeat;
background-position:center;
position:relative;
}
.today span{
position:absolute;
left:0;
top:0;
}

.today a{
color:#000000;
padding-top:10px;
}
.selected {
color: #FFFFFF;
background-color: #C00000;
}
.event {
background-color: #C6D1DC;
border:1px solid #ffffff;
}
.normal {

}
table{
border:1px solid #cccccc;
padding:3px;
}
th{
width:36px;
background-color:#cccccc;
text-align:center;
color:#ffffff;
border-left:1px solid #ffffff;
}
td{
text-align:center;
padding:10px;
margin:0;
}
table.tableClass{
width:350px;
border:none;
border-collapse: collapse;
font-size:85%;
border:1px dotted #cccccc;
}
table.tableClass input,textarea{
font-size:90%;
}
#form1{
margin:5px 0 0 0;
}
#greyBox{
height:10px;
width:10px;
background-color:#C6D1DC;
border:1px solid #666666;
margin:5px;
}
#legend{
margin:5 0 10px 50px;
width:200px;
}
#hr{border-bottom:1px solid #cccccc;width:300px;}
.output{width:300px;border-bottom:1px dotted #ccc;margin-bottom:5px;padding:6px;}
h5{margin:0;}
</style>
</head>

<body>
<div id="legend">
<img src="sq.jpg" /> Scheduled Events<br/><img src="calBg.jpg" height="10"/> Todays Date</div>
<?php
//$todaysDate = date("n/j/Y");
//echo $todaysDate;
// Get values from query string
$day = (isset($_GET["day"])) ? $_GET['day'] : "";
$month = (isset($_GET["month"])) ? $_GET['month'] : "";
$year = (isset($_GET["year"])) ? $_GET['year'] : "";
//comparaters for today's date
//$todaysDate = date("n/j/Y");
//$sel = (isset($_GET["sell"])) ? $_GET['sel'] : "";
//$what = (isset($_GET["what"])) ? $_GET['what'] : "";

//$day = (!isset($day)) ? $day = date("j") : $day = "";
if(empty($day)){ $day = date("j"); }

if(empty($month)){ $month = date("n"); }

if(empty($year)){ $year = date("Y"); }
//set up vars for calendar etc
$currentTimeStamp = strtotime("$year-$month-$day");
$monthName = date("F", $currentTimeStamp);
$numDays = date("t", $currentTimeStamp);
$counter = 0;
//$numEventsThisMonth = 0;
//$hasEvent = false;
//$todaysEvents = "";
//run a selec statement to hi-light the days
function hiLightEvt($eMonth,$eDay,$eYear){
//$tDayName = date("l");
$todaysDate = date("n/j/Y");
$dateToCompare = $eMonth . '/' . $eDay . '/' . $eYear;
if($todaysDate == $dateToCompare){
//$aClass = '<span>' . $tDayName . '</span>';
$aClass='class="today"';
}else{
//$dateToCompare = $eMonth . '/' . $eDay . '/' . $eYear;
//echo $todaysDate;
//return;
$sql="select count(calDate) as eCount from calTbl where calDate = '" . $eMonth . '/' . $eDay . '/' . $eYear . "'";
//echo $sql;
//return;
$result = mysql_query($sql);
while($row= mysql_fetch_array($result)){
if($row['eCount'] >=1){
$aClass = 'class="event"';
}elseif($row['eCount'] ==0){
$aClass ='class="normal"';
}
}
}
return $aClass;
}
?>
<table width="350" cellpadding="0" cellspacing="0">
<tr>
<td width="50" colspan="1">
<input type="button" value=" < " onClick="goLastMonth(<?php echo $month . ", " . $year; ?>);">
</td>
<td width="250" colspan="5">
<span class="title"><?php echo $monthName . " " . $year; ?></span><br>
</td>
<td width="50" colspan="1" align="right">
<input type="button" value=" > " onClick="goNextMonth(<?php echo $month . ", " . $year; ?>);">
</td>
</tr>
<tr>
<th>S</td>
<th>M</td>
<th>T</td>
<th>W</td>
<th>T</td>
<th>F</td>
<th>S</td>
</tr>
<tr>
<?php
for($i = 1; $i < $numDays+1; $i++, $counter++){
$dateToCompare = $month . '/' . $i . '/' . $year;
$timeStamp = strtotime("$year-$month-$i");
//echo $timeStamp . '<br/>';
if($i == 1){
// Workout when the first day of the month is
$firstDay = date("w", $timeStamp);
for($j = 0; $j < $firstDay; $j++, $counter++){
echo "<td>&nbsp;</td>";
}
}
if($counter % 7 == 0){
?>
</tr><tr>
<?php
}
?>
<!--right here--><td width="50" <?=hiLightEvt($month,$i,$year);?>><a href="<?=$_SERVER['PHP_SELF'] . '?month='. $month . '&day=' . $i . '&year=' . $year;?>&v=1"><?=$i;?></a></td>
<?php
}
?>
</table>
<?php
if(isset($_GET['v'])){
if(isset($_POST['Submit'])){
$sql="insert into calTbl(calName,calDesc,calDate,calStamp) values('" . $_POST['calName'] ."','" . $_POST['calDesc'] . "','" . $_POST['calDate'] . "',now())";
mysql_query($sql);
}
$sql="select calName,calDesc, DATE_FORMAT(calStamp, '%a %b %e %Y') as calStamp from calTbl where calDate = '" . $month . '/' . $day . '/' . $year . "'";
//echo $sql;
//return;
$result = mysql_query($sql);
$numRows = mysql_num_rows($result);
?>
<a href="<?=$_SERVER['PHP_SELF'];?>?month=<?=$_GET['month'] . '&day=' . $_GET['day'] . '&year=' . $_GET['year'];?>&v=1&f=true">New Event</a><br/>
<?php
if(isset($_GET['f'])){
include 'calForm.php';
}
if($numRows == 0 ){
echo '<h3>No Events</h3>';
}else{
//echo '<ul>';
echo '<h3>Events Listed</h3>';
while($row = mysql_fetch_array($result)){
?>
<div class="output">
<h5><?=$row['calName'];?></h5>
<?=$row['calDesc'];?><br/>
Listed On: <?=$row['calStamp'];?>
</div>
<?php
}
}
}
?>
</body>
</body>
</html>

That is it,this is not by all means the end of this conversation, there are more elegant ways to do this, I put this together quickly and welcome any feedback.

Come back soon!

References

Comments

Mhhiexvazrqsaprgejsm He found out later that the man was a local businessman, fairly successful, and a little eccentric. Undwskftit on August 21, 2014:

,He gave his famous star little direction, save for the occasional reminder to be more minimal, more "sad clown," says Noah. xboter 2014

Mhhiexvazrqsaprgejsm He found out later that the man was a local businessman, fairly successful, and a little eccentric. Undwskftit on August 21, 2014:

,He gave his famous star little direction, save for the occasional reminder to be more minimal, more "sad clown," says Noah. xboter 2014

Plgkguvpqotvmzplwg 5014 ) edit Xxjtquqjqoclkghspst on August 20, 2014:

,If you don't want to be kept alive indefinitely, it's a good way to make your wishes known. xboter 2014

Fblmuenwxrymzcxn The shot put is available in varying sizes which is based on the level of competition. Oewbgnjtvehogfrmdx on August 20, 2014:

,Despite the recent aggressive share issue of 7. xboter 2014

Abvdkilgetpp Red Motorbike 3D Pad Racing Decal Fiber Sticker Skeleton Rubber Gas Tank Protector For KAWASAKI NINJA 650R 2009-2010 Two state representatives have proposed bills requiring Arizona studen on August 20, 2014:

O-RING DRIVE CHAIN KAWASAKI KX500 KX 500 KX-500 1983-1985 GOLDEN1987-2009 Kawasaki Ninja EX500 500R Heavy Duty ChainN-Style 2010 Kawasaki Pro Circuit Team Graphic Kit N40-3537-S,Other people working to achieve the same societal changes will also link to your blog. xboter 2014

Byzguotzfjv Helmsley : I wasn't looking at her. Qwovhxpuxwbnwi on August 19, 2014:

,It is 16 years since I played my first Test match for India and today I feel it is time to move on. xboter 2014

Pexavzxzqp «Continuons le combat» disait-on naguère. Gaogvpybhsunbwidfbs on August 18, 2014:

,The Open House was a bustling, carnival-like walk down memory lane. xboter 2014

Wesluyfpzuzkbyfexm An old school Bronx based soldier, he had been a force in the garment district under Tony Corallo as a Teamster’s local union leader. Tabkckmguvav on August 18, 2014:

,” he said. xboter 2014

Wesluyfpzuzkbyfexm An old school Bronx based soldier, he had been a force in the garment district under Tony Corallo as a Teamster’s local union leader. Tabkckmguvav on August 18, 2014:

,” he said. xboter 2014

2004-2010 KAWASAKI VN 2000 Vulcan Front and Rear Kevlar Carbon Brake Pads on August 18, 2014:

2004-2010 KAWASAKI VN 2000 Vulcan Front and Rear Kevlar Carbon Brake Pads EBC BRAKE DISC PADS, Manufacturer: EBC, Part Number: 160575-AD, VPN: FA261/2HH-AD, Condition: NewKAWASAKI ZX6R (ZX 636 C1/C6F) FRONT 2005-2006 SINTERED BRAKE PADS 369/41M,A second teammate, Evan Westlake, who also was granted immunity, testified he saw Richmond commit a sex act on the girl on the basement floor of a house that same night. xboter 2014

Gundam RMS-099 Rick Dias HGUC 1/144 Scale on August 17, 2014:

Tomica Limited 0057 EPSON NSX 04 specification (japan import)Gundam RMS-099 Rick Dias HGUC 1/144 ScaleTomy Thomas T-34 Pla Busy Bee James (japan import),Rubella protection is particularly needed before pregnancy. xboter 2014

Hhvzaffqbhbpvyyjc So who has she dated? Phskeldlmp on August 15, 2014:

,Mark Waller, (R-Colorado Springs. xboter 2014

Olian Foldover Twill Maternity Shorts on August 13, 2014:

Yizzam- Georgia O'keeffe - From the Lake" (1924) -New Ladies Womens Chiffon Top"O'Neill Infant Nylon USCG VestOlian Foldover Twill Maternity Shorts,slide 2 of 5 Spousal Debt and State Laws Marrying someone who has student loan debts can be a concern, however, the spouse will generally not be responsible for repayment of loans unless they co-signed the loan paperwork. xboter 2014

Oxdcnjkjldffghwpebo Hoodie Buddie Men's Flint with Mic But the producers may feel it is time to take stock and see if any changes to be made next year’. Yedxejblpa on August 11, 2014:

HTC ONE s Protective Cover Case Skin Shell for HTC one S with Christmas Classics Lovely StyleHonest Beverages Honest Kids Organic Juice Drink Tropical Tango Punch -- 8 PouchesmyLife (TM) Shocking Space Black and Electric Crimson Red - Shock Suit Survivor Series (Built in Kickstand Easy Grip Silicone) 3 Piece 2 Layer Case for NEW Galaxy S5 (5g) Smartphone By Samsung (External Flex Silicone Bumper Gel Internal 2 Piece Rubbe,Private gym If you’re exercising alone, you can choose from hundreds of body-weight and aerobic exercises to design your own short workout. xboter 2014

Scokjqqktotyaoo Dr. Snow: How the FBI Nailed an Ivy League Coke King However Judge O’Donohoe disagreed saying that these were serious allegations against Mr Manning and the case ‘hinged’ on the letter on August 08, 2014:

Lafayette 148 New York Women's Printed Silk BlouseLamaze Baby-Boys Newborn Girls 2 Pack Pants Lamy Al-Star Fountain Pen, Graphite (L26M),How did you start to manifest? xboter 2014

Psmduqoatsyiie L'Oreal Paris EverPure Sulfate-Free Color Care System Moisture Restorative Hair Masque, 5.1 Fluid Ounce Au urmat romanele cu titluri incitante: "Cântecele usturoiului din Paradis" ( Ti on August 07, 2014:

Eureka 101 Dalmatians Paw-Sitive Mini Reward ChartsEverpure EV9318-30 Polaria Water ChillerEverpure EV9318-30 Polaria Water Chiller,Ghosts On The Somme: Filming The Battle is published by Pen Sword Books at £20. xboter 2014

Easton Men's Phantom Turf Cleats on August 07, 2014:

Easton Men's Phantom Turf CleatsElinchrom EL 24068 User Replaceable Plug-In Flashtube for EL 20727 Style 1200RX, EL 20724 Style 1200S EL 20617 Micro CompactElegant Moments Women's Long Sleeve Opaque Teddy,1 in Girls 16s singles and Girls 18s singles, according to the United States Tennis Association. xboter 2014

Domo Superman 52: ~2.5 Funko Mystery Minis x Domo x DC Universe Vinyl Mini-Figure Series" on August 07, 2014:

Domo Superman 52: ~2.5 Funko Mystery Minis x Domo x DC Universe Vinyl Mini-Figure Series"Donald Trump: Master Apprentice DOLCE GABBANA Eau de Parfum Spray for Women, 2.5 Fluid Ounce,To find out if your Similac powder formula is subject to the recall, look on the bottom of the container for a product code that includes eight numbers or letters. xboter 2014

Vgrxtkztsmp MSD Ignition 8470 REPLACEMENT ROTOR For $3. Slejdodhlffcdokbtr on August 07, 2014:

04-06 Volkswagen Golf (R32) Rear Cross Drilled and Slotted RotorsCentric (127.33132R) Slotted and Drilled Brake Rotor90-92 Volkswagen Jetta (1.8L Exc GLi) Front Slotted Brake Rotors,You pushed my buttons, Jimenez told investigators. xboter 2014

AIR5D1035 on August 06, 2014:

AIR5D1035FRAM CF8644A Fresh Breeze Cabin Air FilterGeneration IV. Cold Intake Air Filter Volkswagen Vento 1.9TDI w/ UNIVERSAL INSTALLATION,Padraig and Lorraine Burns from Westport are pictured at the launch of The Mayo News/O’Neills Club Stars Banquet recently. xboter 2014

Yjddbxhznohwmngg Planet Audio TQ422 4-Inch 2-Way Poly Injection Cone Speaker System (Black) " When the clouds parted, the passengers glimpsed giant creatures, turning in the sea, that looked like mons on August 06, 2014:

Pioneer TS-A1302C 5.25-Inch A-Series 120-Watt Component PackageSSL EVO1000.2 EVO Series 1000-watt 2-Channel 2 Ohm Stereo Stable Amplifier with Remote Sub Level ControlNEW STARTER MOTOR 01 02 03 MERCEDES BENZ SLK CLASS 3.2 0-001-108-197,"Should the cabin lose pressure, oxygen masks will drop from the overhead area. xboter 2014

Ebificfsevitjyivzph Importer520 Black Micro-USB Micro USB Car Charger for Samsung Chrono R260 R261 From 1784 he was a U. Uovzhextoaccswmfyyv on August 04, 2014:

Importer520 Red Mini USB Car Charger Vehicle Power Adapter For HTC AriaImporter520 Micro-USB Retractable Car Vehicle Charger 1A for Samsung M360Importer520 Green Mini USB Car Charger Vehicle Power Adapter For HTC Freestyle Phone (AT&T),When I got there that same day, they were at their wits end. xboter 2014

Importer520 6 Ft Feet Yellow Flat Stylish Sync & charging Micro USB Data Cable For Verizon Motorola Droid X2 A955 on August 04, 2014:

Importer520 15 Ft Feet Sync & charging Micro USB Data Cable For HTC Rhyme ADR6330Importer520 6 Ft Feet Light Pink Flat Stylish Sync & charging Micro USB Data Cable For LG VX5600/AccoladeImporter520 6 Ft Feet Green Flat Stylish Sync & charging Micro USB Data Cable For HTC?Rhyme Bliss 6330,8th Sign: He Doesn't Spend Time With You Ok ladies, if he is always too busy for you; that is just that. xboter 2014

BIRUGEAR 5pc Stylus Pen for Dell Venue 7, Venue 8, Venue 8 Pro, Venue 11, Venue 11 Pro and more on August 03, 2014:

Blue Magic 5200mAh External Universal Battery Pack and Charger for latest Smart Phones and Tablets. Compatible with all major smart phones including iPhone, Samsung, HTC, LG, Sony Ericsson, Blackberry, Motorola models. Alos compatible with all major TabletBIRUGEAR 5pc Stylus Pen for Dell Venue 7, Venue 8, Venue 8 Pro, Venue 11, Venue 11 Pro and moreLB1 High Performance New Wireless Bluetooth Mini Speaker for Dell Latitude E6500 Intel C2D 2.40Ghz 2GB 160GB DVDRW Windows Vista ENERGY STAR Laptop Notebook with Built-in Microphone and Micro SD card slot (Black),For example: change password, change email address, make payment, etc. xboter 2014

[Scoop] Laptop Sleeve Case fits Dell Vostro 3350 Messenger Bag - RED & BLACK. Bonus Ekatomi screen cleaner on August 03, 2014:

Unidesign Blue Zebra Print 15&quot; 15.4&quot; Inch Laptop Sleeve Bag for Apple Macbook pro, air, Dell Inspiron, Vostro, Samsung, ASUS UL30, Toshiba Notebook[Scoop] Laptop Sleeve Case fits Dell Vostro 3350 Messenger Bag - RED & BLACK. Bonus Ekatomi screen cleanerCute Pug 15&quot; Laptop Notebook Sleeve Case Bag Pouch Cover For 15&quot; 15.4&quot; 15.4&quot; 15.6&quot; Dell Alienware M15x ,Dell Inspiron 15R ,DELL VOSTRO 1500 /HP Compaq,HP Pavillion M6 DV1000 /Toshiba Satellite ,Toshiba Qosmio /Acer Aspire 5100 5515,Besides the envy which his great reputation raised, he also, by his own deportment, gave those who wished him ill, opportunity to do him mischief. xboter 2014

CablesFrLess (TM) 3ft 3.5mm Patterned Tangle Free Auxiliary (AUX) Cable (Polka Dot Purple) on August 01, 2014:

CableForge 25ft USB Micro Cable for HTC Desire 606W Charger/Data/Computer/Sync CordSmart-Tune-L LPG GPL Fuel Tuner Performance Chip Controller Audi S6 2.7LCablesFrLess (TM) 3ft 3.5mm Patterned Tangle Free Auxiliary (AUX) Cable (Polka Dot Purple),The airline's lawyers laid out a doozy of a Catch-22. xboter 2014

Xwpuwaczibatxvr DIVOOM Bluetune Solo Blue FREE CARRYING POUCH Official USA Seller, Loud Wireless Bluetooth Rechargeable Portable... She’s loaded with meat! Wgtopljlyjwmbjnqbaai on July 31, 2014:

Wireworld Silver Locking Speaker Cable Connectors - Pack of 4Universal Mini Portable Wireless Super Bass Bluetooth Speaker with Rechargeable Battery and Enhanced Bass Resonator...18 Gauge 100 ft. Spool of High Quality Speaker Zip Wire,One popular option is Stanley's FatMax Single-Edge Pull Saw, about $16. xboter 2014

Jacket, Scrubs, Sapphire, Knt Collar/Cuf, Large on July 31, 2014:

Brinno PHV133012 Digital PeepHole ViewerJacket, Scrubs, Sapphire, Knt Collar/Cuf, Large10 Pcs SPST Blue Neon Light On/Off Rocker Switch AC 6A/250V 10A/125V,Offer a mentor if you can. xboter 2014

Samsung Remote Control BN59-00857A Compatibility:SAMSUNG BN59-00857A SAMSUNG BN59-00857A on July 31, 2014:

Samsung Remote Control BN59-00857A Compatibility:SAMSUNG BN59-00857A SAMSUNG BN59-00857AOrtek Windows 7 Vista XP Media Center MCE PC Remote Control and Infrared Receiver for Home, Premium and Ultimate EditionNew ELEMENT TV Remote for ELDFW406 ELCFT262 ELDFW322 ELCFW326 ELCFW329 ELDFT404 ELCFW328 ELDFW464 ELDFT465J ELDFQ501J ELEFQ501J ELGFW601 ELDFW501 ELEFW193 ELEFJ191 ELEFT195 ELEFW195 ELEFS191 ELEFT193 ELEFJ243 ELEFS241 ELEFW264 ELEFT281 ELEFW325 ELEFT326 EL,Highway) 98 was not an issue and you could zip over there and back in pretty good time. xboter 2014

Sosijfqibelvwka Armstrong 21-952 3/4-Inch Drive Impact Drive Adapter beta-blockers may not lower the central aortic pressure as much other anti-hypertensive agents despite similar effects on the brach on July 30, 2014:

US Tape 52727 1-Inch x 25 MagnaTip Pro (ProTape and MagnaTip combo)SHELVES FOR SHOW WOODWORKING PAPER PLAN PW10046Armstrong 12-125 1/2-Inch Drive 12 Point Standard Socket, 25/32-Inch,Patroni : Oh my God there is. xboter 2014

Black 3 RCA Female to 3 RCA Female Audio Video AV Adapter Connector on July 30, 2014:

TOOGOO RCA Male to Dual RCA Female Adapter (Black)Importer520 6 Ft Stereo 3.5mm to 2 x RCA Audio Y-Adapter Cable For Apple iPod Touch 5th Generation 5G 5Black 3 RCA Female to 3 RCA Female Audio Video AV Adapter Connector,"The moment one brings competition into music, the soul is lost. xboter 2014

Vjxkczwhboq Tom Smith's Parlour Fireworks Crackers Advertisement - Peel and Stick Removable Graphic Special workshops with guest teachers are also available, as well as punctual cultural happenings (e on July 30, 2014:

3 hp 3450rpm 56Y Frame 230 volts Square Flange Energy Efficient Pool Pump Replacement Motor AO SmithA.O. Smith 9405A 3/4 HP, 1075 RPM, 5 Speed, 48Y Frame, CCWLE Rotation, 1/2-Inch by 3-1/8-Inch Flat Shaft OEM Direct ReplacementA.O. Smith BN40SS 2 HP, 3450 RPM 10.0/20.0 Amps, 1 Service Factor, 48Y Frame, Capacitor Start, ODP Enclosure, Rigid Base Pool Motor,Im glad she was found guilty and shes notwalkingaround Afghanistan or Pakistan or Boston. xboter 2014

2PR7294 - Telehook TH-2050-UFL Mounting Arm for Flat Panel Display on July 30, 2014:

Blackmagic Design Mini Converter, Updowncross Black Tilting/Tilt Wall Mount Bracket for Samsung LN-40B630N1F (LN40B630N1F) 40 LCD HDTV Television/TV"2PR7294 - Telehook TH-2050-UFL Mounting Arm for Flat Panel Display,I HATE MR NICHOLAS ! xboter 2014

Burpee Radish All Seasons White 50989 (White) 100 Seeds on July 30, 2014:

HTS 161D0 2pc 5&quot; Striaght Locking Hemostat SetSpeakman SE-901-CR Self-Closing ValveBurpee Radish All Seasons White 50989 (White) 100 Seeds,I make an extra effort to walk through the 130-odd feet of buffet spread and end up counting 126 dishes! xboter 2014

Lqdudpexynsclosltc SE - Flashlight - Mini Keychain, 48 Pc Display Step Four: Research for top INCOME-GENERATING tools If you have done your job properly and followed all the previous steps, your blog on July 30, 2014:

HTS 161D0 2pc 5&quot; Striaght Locking Hemostat SetSpeakman SE-901-CR Self-Closing ValveBurpee Radish All Seasons White 50989 (White) 100 Seeds,I make an extra effort to walk through the 130-odd feet of buffet spread and end up counting 126 dishes! xboter 2014

HSS Nut Tap Size: 3/8-24" on July 30, 2014:

HSS Nut Tap Size: 3/8-24" Gyros 92-94018 Carbon Steel Hex Rethreading Die, 5/8-18 TPI Drill America DWT Series Qualtech High-Speed Steel Round Adjustable Threading Die, 1-1/2 Diameter,[To Leela. xboter 2014

Bopwsxkmjbweybzfqmx N gauge 00301 Ueda traffic Bessho Onsen Station (paper structure unpainted kit) (japan import) Wed like to go home and just get away from everyone, but theres a decent chance Sharo on July 30, 2014:

Nambu Tekki &quot;Tami-san&quot; Iron Bakeware Bread Small-size F421 CN110Unigue Design Custom Hard Plastic Back Protective Case Cover Beautiful Wallpaper Sakura Vintage Flower Watercolor Art Tribal Tree Patter Case Cover for Iphone 5 5s - Cell Phone Hard Case Cover Personalied Phone Case Cover Style DTautoroffen Rose bus cube 2 ~ 50g,Take her out that day maybe for some window-shopping, a park, a lake or pond, a nature walk, or visit somewhere the two of you have never visited before. xboter 2014

14mm X 1 Metric Right Hand Thread Die M14 X 1.0mm Pitch on July 30, 2014:

Union Butterfield 1500A(UNC) High-Speed Steel Hand Tap, Black Oxide Finish, Round Shank With Square End, Plug Chamfer, 1/2-13 Thread Size' Union Butterfield 1500A(UNC) High-Speed Steel Hand TapVermont American 20274 High Carbon Steel NC Fractional Bottoming Tap - 7/16-inch by 14

Union Butterfield 1500A(UNC) High-Speed Steel Hand Tap, Black Oxide Finish, Round Shank With Square End, Plug Chamfer, 1/2-13 Thread Size' Union Butterfield 1500A(UNC) High-Speed Steel Hand Tap on July 30, 2014:

Union Butterfield 1500A(UNC) High-Speed Steel Hand Tap, Black Oxide Finish, Round Shank With Square End, Plug Chamfer, 1/2-13 Thread Size' Union Butterfield 1500A(UNC) High-Speed Steel Hand TapVermont American 20274 High Carbon Steel NC Fractional Bottoming Tap - 7/16-inch by 14

Jgqforiqtueon Ace Wedge It Furniture Wedge 2l X 1-3/16w X 1/4h There may be one you won't see for a long time, and then there will be a stressor and they're back hooking for crack. Qtlhcorkzuvmhlzcqxb on July 30, 2014:

10 Pc Trim Fastener Molding Remover Kithkbayi Remote Control Mini SPY Car Vehicle Realtime Tracker For GSM GPRS GPS System Tracking Device TK103B with...K&L Supply MC460 Fat Jack 37-8660,Established workplace rules and guidelines 2. xboter 2014

A|X Armani Exchange Rose Gold Watch AX2207 on July 29, 2014:

Halcyon Brand 600 mAH Charger with Car Charger Attachment Kit Memory Card Wallet SDHC Card USB Reader Deluxe Starter Kit for Fujifilm FinePix JX400 Digital Camera and Fujifilm NP-45AGIORGIO ARMANI 868 color O3G00 EyeglassesA|X Armani Exchange Rose Gold Watch AX2207,Why is a solution-focus ultra-important? xboter 2014

Xytotaenqpkjfgr Logitech - Wireless Bluetooth Speaker Adapter - Black " [10] I. Mpwugmsheowaoprur on July 28, 2014:

LB1 High Performance New Portable Ultra-Slim Bluetooth Wireless Keyboard for HP 2000-2d11dx Laptop PC- Intel Core i3 / 15.6&quot; / 4GB DDR3 / 500GB HD / DVD&plusmn;RW/CD-RW / Webcam / 802.11b/g/n WLAN / Windows 8 64-bit (White)Granvela&reg; V200 Bluetooth Wireless Speaker, Portable Wireless Bluetooth Speaker with Built in Speakerphone,Sport Speakers Can be Hung Speakers, Mini, Mobile, & Rechargeable With Enhanced Bass Resonator & 3.5 mm Audio - Works With Any Bluetooth EPillow Edition Protective Lightweight Sleeve For Dell Venue 11 Pro Tablet (11-inch Touch Screen) Black Bluetooth Suction Speaker,At least once a year, me and the Mrs. xboter 2014

Tsydxjiywjzsfk AMW T-352 Dolby Digital Home Theater System (Discontinued by Manufacturer) The pro-opposition monitoring group said there were at least six. Bnxvkzaovc on July 27, 2014:

M LED Grill LightPyle Phst92ibk Digital 2.1 Channel Home Theater Tower With Ipod Iphone Dock 11.5 Metal Frame Clock",New York is upset and claims her heart can't take it, and I find myself wishing a prolapsed mitral valve on her. xboter 2014

Carroll Lester on July 15, 2014:

I saw the thread title right here and considered why not say to every person that's a member in this article.

Edward on March 10, 2014:

@Alpho011

Please give me the src file in edward6993@hotmail.com

I have view all of comment came from you and others , i still cant not fix the bug...

Parse error: syntax error, unexpected ';' in C:\AppServ\www\cal-2.php on line 104

Please help

Alfredo on August 13, 2013:

please give me this zip in west0790@gmail.com

Rajesh kashyap on April 13, 2013:

Hi there is no any live demo !! where can we see it

anku on April 09, 2013:

please give me this zip in patelchakky21@gmail.com

Wayne on March 30, 2013:

This is fab!

Can anyone help with making the goNextMonth and goLastMonth functions ajax so that it stays on the same page?

rak on March 04, 2013:

For all of you that can't find the files "cal.php" and "calForm.php" like me, here you have a link to the code (you only have to change $host,$username,$password and $dbName if it is needed).

http://www.dynamicdrive.com/forums/showthread.php?...

waway on January 07, 2013:

please send me the full file of this code i need this badly

zekeofthislife@yahoo.com please

jordan mulkey on December 10, 2012:

Can someone send me the file zip for calform.php

jordan.mulkey@mavs.uta.edu plz and thank you

Mattia on November 27, 2012:

Can someone send me the file zip

eguatta@gmail.com

please

needHelp on October 31, 2012:

how if i want to delete the event???

needHelp on October 31, 2012:

can i get the calForm.php

email : fazura2@gmail.com

dude on September 20, 2012:

can anyone also send me the whole zip?

email: counter_insurgency99@yahoo.com.ph

thanks in advance!

an123ne on September 05, 2012:

can anyone send me the calForm.php? or the whole code please. my email: matias_anne@yahoo.com

thanks!

an123ne on September 05, 2012:

hi, i want to use this but i get the error , Warning: include(calForm.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\MIS\calendar.php on line 257

Warning: include() [function.include]: Failed opening 'calForm.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\MIS\calendar.php on line 257

i don't know how to fix this. where's calForm.php? any help?

Sierd on August 13, 2012:

Can someone send me the full zip

sierd@black-adder.nl

ryan on August 12, 2012:

$sql="Select count(calDate) as eCount from calTbl where calDate =''"; what is wrong with this ?

sandeep on July 11, 2012:

thanks

Eve on May 04, 2012:

can anyone send me the complete file for this event calendar ?TQ tontoro26@gmail.com

Aneeq on April 06, 2012:

The following link has an excellent explanation of how to enable Arabic, Urdu and other foreign language support in PHP/MySQL.

http://addr.pk/a44d

OR

http://phphelp.co/2012/03/30/how-to-make-php-and-m...

xander on March 17, 2012:

the date doesn't show, instead a grater than sign shows

Mike on March 08, 2012:

i want to download this files

business loans on March 03, 2012:

Make your own life more easy take the home loans and all you want.

loans on March 03, 2012:

Have no enough cash to buy some real estate? Do not worry, just because this is achievable to take the personal loans to work out such problems. Thence take a car loan to buy all you require.

Office Test on March 02, 2012:

cannot add new events

Kevin James on February 23, 2012:

Can someone send me the full zip

kdorsainvil10@gmail.com

jas on February 13, 2012:

i need the zip file too, the link doesn't work anymore.please send here: nimsaj10@yahoo.com.sg thanks in advance! Godbless :)

czar47 from Madurai, India on February 04, 2012:

i'm using adobe dreamweaver. when i copied the entire code i get error in this line.help me out of this.and also what is the database name tat should be created....

document.location.href

siya on February 01, 2012:

Can you please send me the files also:

solwanes@gmail.com

sayuri on January 28, 2012:

The days of calendar don´t appear !! Is this does the full code ?? Help !!

salvatore on January 17, 2012:

Hi at all...

Can I have the entire files of the calendar??I downloaded the main file but I don't have the calForm.php...

Can anyone send me an email at salvatore.zagarella[AT]gmail.com ??

Thanks...

keiseichi on January 15, 2012:

sorry. this is my email

keiseichi@gmail.com

thanks

keiseichi on January 15, 2012:

sorry. this is my email

keiseichi@gmail.com

thanks

keiseichi on January 15, 2012:

can you please send me the full code?

really appreciate it.I've been working on this for quite some time now but couldn't manage to figure it out.

help me please.

thank you.

rasvi on October 31, 2011:

hello I need to know is this one file or how many file I have to add I'm doing these days events calendar so I want to make as soon as possible

Crei on September 17, 2011:

what are the codes for the call Form.. Please Help me, .and the complete file of the calendar . here's my email .. comptech1620@yahoo.com Thanks.. Godbless

Jay on September 16, 2011:

HI.. i need your help please send me the complete file zip thanks

headtail on September 08, 2011:

please send me the complete zip file.

Here's my email bonbon20002006@yahoo.com

Thanking you

Sakunne on September 06, 2011:

Need your help .. . please send me the files:

sakunne@seenior.ee

chacha on September 05, 2011:

can you please send me a complete package in simple calendar of event thanks in advance i need it asap for my project... here are my email address

dhianrose_aguilar@yahoo.com

Sakunne on September 03, 2011:

Were can I get those scripts_

http://diadde.com/ doesn't work anymore :(

Sakunne on August 30, 2011:

An error like this:

http://alternova.ee/kalender/SimpleEventCal/

???

newbie on August 27, 2011:

hi im new in php and mysql. ive tried copying your code and i almost had everything working except im missing the calform.php

it would be great if someone give the source code for the said script. thanks in advance

ich on August 19, 2011:

ihr seid einfach ein paar echte Idioten!

yan on August 10, 2011:

can you send me calForm.php

some how i work for 2 days and still no good

thanks for the share

send me maxwell_of_chaos@yahoo.co.id

Alpho011 (author) from Marietta, Georgia on April 04, 2011:

@vs

http://www.w3schools.com/ajax/default.asp

AJAX

vs on April 04, 2011:

How to implement without refreshing the page..

kdi on March 30, 2011:

Hi Alpho011,

Its kdiamonds.

Thanks for getting back to me..really appreciated.

I dropped you an email as requested.

Look forward to hearing from you.

Alpho011 (author) from Marietta, Georgia on March 29, 2011:

@kdiamonds:

email me I will give you the src files, I took down the domain I had.

kdiamonds on March 29, 2011:

This is bountiful bro!

I am only 3weeks old in PHP so for newbie's like me this is lyke a father figure 4sure.

I create an event and it stores it in my db perfectly.

Could you please advise me how to get the events to display on the calender page, as on mine it just says no events even though the event are in my db.

Thanks bro

look forward to hearing from you.

Hi Alpho011 on March 29, 2011:

This is bountiful bro!

I am only 3weeks old in PHP so for newbie's like me this is lyke a father figure 4sure.

I create an event and it stores it in my db perfectly.

Could you please advise me how to get the events to display on the calender page, as on mine it just says no events even though the event are in my db.

Thanks bro

look forward to hearing from you.

Alpho011 (author) from Marietta, Georgia on March 10, 2011:

@nitin

I can't go step by step, been real busy:

here is the sql

CREATE TABLE `eventsTbl` (

`evt_id` int(11) NOT NULL auto_increment,

And here is the php, just paste in between the body tags:

##############code######################

nitin on March 09, 2011:

please explain me each step what to do from the begining ASAP ..i have a project to do plzzz..thnx in advance

skillet on February 13, 2011:

ah sorry about this obvious question but desperately need help....umm i made connection to ma database using

following within the following

it seems to connect to the database but the problem is it's not able to display the calender as whole just list the current month,yea thats about it could someone help....sorry fer ultimate noabness!!!!!!!!

Rob Macintosh on January 18, 2011:

Excellent tut, thanks.

Web Development on December 12, 2010:

very nice tutorial as i think a lot of people would like to develop something like this for themselves, also this is good to inspire and educate clients about what php developers actually do so they can understand what actually goes into some like a simple calendar.

Winter on October 17, 2010:

My Email is im4r45c4l@hotmail.com