Hi I have following tables:
And following is my PHP code (mysearch.php) which will search and list the relevant results in the same page.
For example lets say in the search criteria when someone enters particuar date like 05/05/2013, I want all the results of that month i.e May 2013 (anything from 01/05/2013 - 31/05/2013) to be listed; Can this be done.
Or I have to create another field in the database with MM-YY only and search that field.
Any help would be much appreciated, thank you.
<?php ini_set('display_errors',1); error_reporting(E_ALL); ?> <?php include 'db.inc.php'; ?> <?php session_start(); $_SESSION['duration']='duration'; $_SESSION['datepicker']='datepicker'; $_SESSION['transport']='transport'; $_SESSION['activity']='activity'; ?> <!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>Intranet Activities Search</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css" /> <script> $(function() { $("#datepicker").datepicker({dateFormat: 'yy-mm-dd'}); }); </script> <style type="text/css" media="screen"> table { font-size: 14px; } </style> </head> <body> <form id="form1" name="form1" method="post" action="mysearch.php"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td>Duration (days)</td> <td> <?php $duration_options = ''; for ($d=7; $d<=14; $d++) { $sel = $d == $_SESSION['duration'] ? "selected='selected" : ''; $duration_options .= "<option $sel value='$d'> $d</option>"; } ?> <select name="duration" id="duration"> <option value="">Any</option> <?php echo $duration_options ?> </select></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td width="45%">Date (YYYY-MM-DD)</td> <td width="55%"> <?php $datepicker_options['datepicker'] = 'datepicker'; $_SESSION['datepicker'] = $datepicker_options['datepicker']; ?> <input name="datepicker" type="text" id="datepicker" /> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Transportation</td> <td> <?php $transport_options = ''; $trans = array('included', 'excluded'); foreach ($trans as $o) { $sel = $o == $_SESSION['transport'] ? "selected='selected" : ''; $transport_options .= "<option $sel value='$o'> $o</option>"; } ?> <select name="transport" id="transport"> <option selected="selected" value="0">Any</option> <?php echo $transport_options ?> </select> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td colspan="2"> <?php $_SESSION['activity'] = (isset($_POST['activity'])) ? $_POST['activity'] : array(); $query="SELECT * FROM inclusion ORDER BY incid"; $test= mysql_query($query) or die(mysql_error()); while(list($incid, $incdesc) = mysql_fetch_row($test)) { $chk = in_array($incid, $_SESSION['activity']) ? "checked='checked'" : ''; echo "<input type=\"checkbox\" name=\"activity[]\" value=\"$incid\" $chk /> $incdesc <br>"; } ?> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td><input type="submit" name="searchbtn" id="searchbtn" value="Search" /></td> <td> </td> </tr> </table> </form> <p></p> <p></p> <p>RESULTS</p> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> </table> <?php if(isset($_REQUEST['searchbtn'])){ $where = array(); $whereclause = ''; if (!empty($_POST['duration'])) { $val = intval($_POST['duration']); $where[] = "(acdur = $val)"; } if (!empty($_POST['transport'])) { $val = mysql_real_escape_string($_POST['transport']); $where[] = "(actransp = '$val')"; } if (!empty($_POST['datepicker'])) { $val = mysql_real_escape_string($_POST['datepicker']); $where[] = "(acdate = '$val')"; } // assuming you change you checkbox names if (isset($_POST['activity'])) { $val = join(",", array_map('intval', $_POST['activity'])); $where[] = "(incl_activity.incid IN ($val))"; } if (count($where)) $whereclause = "WHERE " . join(' AND ', $where); $query = "SELECT activities.*, teamleader.tlname, GROUP_CONCAT(incdesc SEPARATOR ', ') as Includes FROM activities JOIN incl_activity on activities.acid = incl_activity.acid JOIN inclusion on incl_activity.incid = inclusion.incid JOIN teamleader on activities.tlid2 = teamleader.tlid $whereclause GROUP BY activities.acid ORDER BY activities.accost ASC"; $test= mysql_query($query) or die(mysql_error()); if(mysql_num_rows($test)) { $i=0; while($row = mysql_fetch_assoc($test)){ $actitle=$row["actitle"]; $tlname=$row["tlname"]; $acdate=$row["acdate"]; $acdur=$row["acdur"]; $accost=$row["accost"]; $incdesc=$row["Includes"]; $actransp=$row["actransp"]; echo "<div style='width:250px; padding:10px; float:left;'> $actitle <br> $tlname <br> $acdate <br> $acdur <br> $accost <br> $incdesc <br> $actransp </div>"; $i++; if($i % 3 == 0) echo "<div style='clear:both'></div>\n"; } if ($i%3) echo "<div style='clear:both'></div>\n"; } else { echo '<div align=center style="margin:20px; font-family:Arial, Helvetica, sans-serif; font-size: 20px; font-weight:bold; color: #ae1919;">Your search did not match any results.</div>'; header('Refresh: 5; URL=mysearch.php'); } } ?> </body> </html> <?php mysql_free_result($test); ?>