venom792001 Posted December 6, 2008 Share Posted December 6, 2008 I'm using a php/mysql calendar from http://evolt.org/quick_calendar_using_ajax...nts_per_page=50 ive got it on my site and i have info in the database and have it showing when you click on the date on the calendar the problem i am having is having it only show the info for that specific date clicked, right now its showing all info from the database obviously i am doing the query wrong just not sure what.... This is the code im using to show the info from the db on selected day <?php // CONFIGURE THE DB ACCESS $dbhost = 'xxxxx'; $dbuser = 'xxxxxx'; $dbpass = 'xxxxx'; $database = "xxxxx"; $dbConnect = mysql_connect($dbhost, $dbuser, $dbpass); if (!$dbConnect) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db($database, $dbConnect); if (!$db_selected) { die ('db selection error : ' . mysql_error()); } // name of table $tableName = 'calendar'; $date=date("F j, Y"); $sql = "SELECT * FROM $tableName"; $query = mysql_query($sql); while ($row = mysql_fetch_assoc($query)){ echo " <table border='0' cellpadding='12' cellspacing='4' width='95%'> <tbody> <tr> <th align='center'>Home</th> <th align='center'>Away</th> </tr> <tr> <td align='center'>$row[home_team]</th> <td align='center'>$row[away_team]</th> </tr> <tr> <td align='center'>0</th> <td align='center'>0</th> </tr> <tr> <td align='center' colspan='2'> </td> </tr> <tr> <td align='center' colspan='2'> </td> </tr> <tr> <td align='center' colspan='2'>$date, $row[time]</td> </tr> <tr> <td align='center' colspan='2'> </td> </tr> <tr> <tr> <td align='center' colspan='2'>$row[location]</td> </tr> </table> </div>"; } ?> Any help is greatly appreciated Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 6, 2008 Share Posted December 6, 2008 $sql = "SELECT * FROM $tableName"; Maybe you need to add WHERE part to this query limiting it to desired date? Quote Link to comment Share on other sites More sharing options...
venom792001 Posted December 6, 2008 Author Share Posted December 6, 2008 thats a good idea, any idea how i would compare the date to the info in the db im really new to php/mysql Thanks! Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 6, 2008 Share Posted December 6, 2008 How is the date stored in database? Paste the table structure if possible. Quote Link to comment Share on other sites More sharing options...
venom792001 Posted December 6, 2008 Author Share Posted December 6, 2008 here is the structure TABLE calendar ( id INT NOT NULL AUTO_INCREMENT , day VARCHAR( 2 ) NOT NULL , month VARCHAR( 2 ) NOT NULL , year VARCHAR( 4 ) NOT NULL , link VARCHAR( 255 ) NOT NULL , desc TEXT NOT NULL , PRIMARY KEY ( id ) ); Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 6, 2008 Share Posted December 6, 2008 Ouch... why do peopple store dates in such convoluted ways? There's DATE datatype to store dates... Your query should look like $day = // selected day $month = // selectod month $year = // selected year $sql = "SELECT * FROM $tableName WHERE `day` = $day AND `month` = $month AND `month` = $month"; Quote Link to comment Share on other sites More sharing options...
venom792001 Posted December 6, 2008 Author Share Posted December 6, 2008 Thanks for the reply, for some reason because the code for the calendar uses the mysql_fetch_array on the index page, that now any code i have elsewhere that uses mysql_fetch_assoc will shoot off an error Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in / Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 6, 2008 Share Posted December 6, 2008 That will happen, if the query failed. Quote Link to comment Share on other sites More sharing options...
venom792001 Posted December 6, 2008 Author Share Posted December 6, 2008 Ahh well this is very frustrating lol Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 6, 2008 Share Posted December 6, 2008 Could you post your code after changes? Quote Link to comment Share on other sites More sharing options...
venom792001 Posted December 6, 2008 Author Share Posted December 6, 2008 Ok here is all the code im using calendar.php <?php /* * Quick Calendar Using PHP and AJAX * Copyright (C) 2005-2007 * Version 1.1; * Last modified: 23 Jan 2007 * Author: Bernard Peh * Email: bpeh@sitecritic.net * Website://web-developer.sitecritic.net/ * File Name: quick_calendar.php * * LICENSE: * This is my contribution back to the open source community. You may modify the codes according * to your needs but please keep this section intact. * * DESCRIPTION: * Generate a simple calendar that can integrate seamlessly into any system with minimal * installation. You must be running be running PHP 4 at the minimal. * * SPECIAL THANKS TO FRIENDS FROM EVOLT.ORG * Adam Taylor, kirk837 * */ // This year $y = date('Y'); // This month $m = date('n'); // This Day $d = date('j'); $today = array('day'=>$d, 'month'=>$m, 'year'=>$y); // If user specify Day, Month and Year, reset the var if (isset($_GET['m'])) { $y = $_GET['y']; $m = $_GET['m']; } // CONFIGURE THE DB ACCESS $dbhost = ''; $dbuser = ''; $dbpass = ''; $database = ""; $dbConnect = mysql_connect($dbhost, $dbuser, $dbpass); if (!$dbConnect) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db($database, $dbConnect); if (!$db_selected) { die ('db selection error : ' . mysql_error()); } // name of table $tableName = 'calendar'; // name of css $css = 'calendar'; // Location of the calendar script file from the root $ajaxPath = './calendar.php'; // END OF CONFIGURATION. YOU CAN CHANGE THE CSS. THE OTHER CODES CAN BE KEPT AS DEFAULT IF YOU WANT. $sql = "SELECT * FROM $tableName WHERE (month='$m' AND year='$y') || (month='*' AND year='$y') || (month='$m' AND year='*') || (month='*' AND year='*')"; $rs = mysql_query($sql); $links = array(); while ($rw = mysql_fetch_assoc($rs)) { extract($rw); $links[] = array('day'=>$day, 'month'=>$month, 'year'=>$year, 'link'=>$link, 'desc'=>$desc); } ?> <?php // if called via ajax, dont display style sheet and javascript again if (!isset($_GET['ran'])) { ?> <style type="text/css"> .calendar { /** configure the width **/ width:218px; background-color: #EEEEEE; border: 1px solid #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin:0px; padding:0px; text-align:center; } .calendar th { background:url('images/header2.jpg'); font-weight: bold; height: 20px; color: #ffffff; } .calendar .header { background:url('images/header.jpg'); font-weight: bold; height: 24px; color: #FFFFFF; } .calendar .footer { background:url('images/header2.jpg'); font-weight: bold; font-size:0.8em; color: #FFFFFF; width:100%; } .calendar td { width: 22px; height: 20px; text-align: center; font-size:0.9em; padding: 2px; } .calendar .today { width: 18px; height: 16px; background-color: #36393D; padding: 2px; border: 1px solid #000000; font-weight: bold; color: #ffffff; } .calendar .home { width: 18px; height: 16px; background-color: #B71313; padding: 2px; border: 1px solid #000000; font-weight: bold; color: #ffffff; } .calendar .away { width: 18px; height: 16px; background-color: #000000; padding: 2px; border: 1px solid #EEEEEE; font-weight: bold; color: #ffffff; } .calendar .link { width: 18px; height: 16px; color: #ffffff; font-weight:bold; background-color: #B71313; padding: 2px; border: 1px solid #000000; } .calendar a, .calendar a:link, .calendar a:hover { font-weight: bold; text-decoration: underline; color: #ffffff; } .calendar a.headerNav, .calendar a:link.headerNav, .calendar a:hover.headerNav { color: #ffffff; } .calendar a.footerNav, .calendar a:link.footerNav, .calendar a:hover.footerNav { width: 100%; color: #ffffff; } </style> <script language="javascript"> function createQCObject() { var req; if(window.XMLHttpRequest){ // Firefox, Safari, Opera... req = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer 5+ req = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert('Problem creating the XMLHttpRequest object'); } return req; } // Make the XMLHttpRequest object var http = createQCObject(); function displayQCalendar(m,y) { var ran_no=(Math.round((Math.random()*9999))); http.open('get', '<?= $ajaxPath; ?>?m='+m+'&y='+y+'&ran='+ran_no); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { var response = http.responseText; if(response) { document.getElementById("quickCalender").innerHTML = http.responseText; } } } http.send(null); } </script> <?php } ?> <?php class CreateQCalendarArray { var $daysInMonth; var $weeksInMonth; var $firstDay; var $week; var $month; var $year; function CreateQCalendarArray($month, $year) { $this->month = $month; $this->year = $year; $this->week = array(); $this->daysInMonth = date("t",mktime(0,0,0,$month,1,$year)); // get first day of the month $this->firstDay = date("w", mktime(0,0,0,$month,1,$year)); $tempDays = $this->firstDay + $this->daysInMonth; $this->weeksInMonth = ceil($tempDays/7); $this->fillArray(); } function fillArray() { // create a 2-d array for($j=0;$j<$this->weeksInMonth;$j++) { for($i=0;$i<7;$i++) { $counter++; $this->week[$j][$i] = $counter; // offset the days $this->week[$j][$i] -= $this->firstDay; if (($this->week[$j][$i] < 1) || ($this->week[$j][$i] > $this->daysInMonth)) { $this->week[$j][$i] = ""; } } } } } class QCalendar { var $html; var $weeksInMonth; var $week; var $month; var $year; var $today; var $links; var $css; function QCalendar($cArray, $today, &$links, $css='') { $this->month = $cArray->month; $this->year = $cArray->year; $this->weeksInMonth = $cArray->weeksInMonth; $this->week = $cArray->week; $this->today = $today; $this->links = $links; $this->css = $css; $this->createHeader(); $this->createBody(); $this->createFooter(); } function createHeader() { $header = date('M', mktime(0,0,0,$this->month,1,$this->year)).' '.$this->year; $nextMonth = $this->month+1; $prevMonth = $this->month-1; switch($this->month) { case 1: $lYear = $this->year; $pYear = $this->year-1; $nextMonth=2; $prevMonth=12; break; case 12: $lYear = $this->year+1; $pYear = $this->year; $nextMonth=1; $prevMonth=11; break; default: $lYear = $this->year; $pYear = $this->year; break; } // -- $this->html = "<table cellspacing='0' cellpadding='0' class='$this->css'> <tr> <th class='header'> <a href=\"javascript:;\" onclick=\"displayQCalendar('$this->month','".($this->year-1)."')\" class='headerNav' title='Prev Year'><<</a></th> <th class='header'> <a href=\"javascript:;\" onclick=\"displayQCalendar('$prevMonth','$pYear')\" class='headerNav' title='Prev Month'><</a></th> <th colspan='3' class='header'>$header</th> <th class='header'><a href=\"javascript:;\" onclick=\"displayQCalendar('$nextMonth','$lYear')\" class='headerNav' title='Next Month'>></a> </th> <th class='header'> <a href=\"javascript:;\" onclick=\"displayQCalendar('$this->month','".($this->year+1)."')\" class='headerNav' title='Next Year'>>></a></th> </tr>"; } function createBody(){ // start rendering table $this->html.= "<tr><th>S</th><th>M</th><th>T</th><th>W</th><th>Th</th><th>F</th><th>S</th></tr>"; for($j=0;$j<$this->weeksInMonth;$j++) { $this->html.= "<tr>"; for ($i=0;$i<7;$i++) { $cellValue = $this->week[$j][$i]; // if today if (($this->today['day'] == $cellValue) && ($this->today['month'] == $this->month) && ($this->today['year'] == $this->year)) { $cell = "<div class='today'>$cellValue</div>"; } // else normal day else { $cell = "$cellValue"; } // if days with link foreach ($this->links as $val) { if (($val['day'] == $cellValue) && (($val['month'] == $this->month) || ($val['month'] == '*')) && (($val['year'] == $this->year) || ($val['year'] == '*'))) { $cell = "<div class='link'><a rel=\"facebox\" href=\"cal_games.php\" title='{$val['desc']}'>$cellValue</a></div>"; break; } } $this->html.= "<td>$cell</td>"; } $this->html.= "</tr>"; } } function createFooter() { $this->html .= "<tr><td colspan='7' class='footer'><span class='home'> </span> Game Nights</td></tr></table>"; } function render() { echo $this->html; } } ?> <?php // render calendar now $cArray = &new CreateQCalendarArray($m, $y); $cal = &new QCalendar($cArray, $today, $links, $css); if (!isset($_GET['ran'])) { echo "<div id='quickCalender'>"; } $cal->render(); if (!isset($_GET['ran'])) { echo "</div>"; } ?> and the code im using to call the info from the db via a modal box <?php // CONFIGURE THE DB ACCESS $dbhost = ''; $dbuser = ''; $dbpass = ''; $database = ""; $dbConnect = mysql_connect($dbhost, $dbuser, $dbpass); if (!$dbConnect) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db($database, $dbConnect); if (!$db_selected) { die ('db selection error : ' . mysql_error()); } // name of table $tableName = 'calendar'; $date=date("F j, Y"); $day = // selected day $month = // selectod month $year = // selected year $sql = "SELECT * FROM $tableName WHERE `day` = $day AND `month` = $month AND `month` = $month"; $query = mysql_query($sql); while ($row = mysql_fetch_assoc($query)){ echo " <table border='0' cellpadding='12' cellspacing='4' width='95%'> <tbody> <tr> <th align='center'>Home</th> <th align='center'>Away</th> </tr> <tr> <td align='center'>$row[home_team]</th> <td align='center'>$row[away_team]</th> </tr> <tr> <td align='center'>0</th> <td align='center'>0</th> </tr> <tr> <td align='center' colspan='2'> </td> </tr> <tr> <td align='center' colspan='2'> </td> </tr> <tr> <td align='center' colspan='2'>$date, $row[time]</td> </tr> <tr> <td align='center' colspan='2'> </td> </tr> <tr> <tr> <td align='center' colspan='2'>$row[location]</td> </tr> </table> </div>"; } ?> If you now of a better way to store the date for this i would love your input if it makes it easier i appreciate all your input and patience!! Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 6, 2008 Share Posted December 6, 2008 $day = // selected day $month = // selectod month $year = // selected year you have to actually put some values here, probably from $_GET or $_POST variables. Quote Link to comment Share on other sites More sharing options...
venom792001 Posted December 8, 2008 Author Share Posted December 8, 2008 Thanks for the help Mchl but i just can't figure it out might be a little to advanced for my brain lol Quote Link to comment Share on other sites More sharing options...
MadnessRed Posted December 15, 2008 Share Posted December 15, 2008 $query = mysql_query($sql); try replacing with $query = mysql_query($sql) or die(mysql_error()); Then that gives us a reason for it to fail (sometimes) Quote Link to comment Share on other sites More sharing options...
Mchl Posted December 15, 2008 Share Posted December 15, 2008 It fails cause these variables are empty. (Not to mention missing ;s) Quote Link to comment Share on other sites More sharing options...
MadnessRed Posted December 15, 2008 Share Posted December 15, 2008 how are the two files you posted linked? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.