Jump to content


Photo

Compact script


  • Please log in to reply
No replies to this topic

#1 horaliar

horaliar
  • Members
  • PipPip
  • Member
  • 11 posts

Posted 28 April 2006 - 08:11 PM

This is my first script that I wrote for my department. It runs queries against a mysql database depending on parameters that the user has entered. I'm running into trouble because I wrote everything in one file, except some javascript functions, and now I'm having problems adding to it. I would like to have some ideas on how to divide the code in different files and make it more manageble. Any ideas will be welcomed. Thanks!

<html>
<head>
<link rel="stylesheet" href="myStyle.css" type="text/css">
<script LANGUAGE="javascript" TYPE="text/javascript" SRC="tools.js"></SCRIPT>
<script LANGUAGE="JavaScript" SRC="CalendarPopup.js"></SCRIPT>
<script LANGUAGE="JavaScript">
var cal = new CalendarPopup();
</SCRIPT>
</head>
<body>

<?php
//Connect to the server.
$link = mysql_connect("", "", "");
//Connect to the db.
mysql_select_db("dbads", $link);
?>

<form method="POST" name="data" action="adserv.php">
<input type="hidden" name="command">
<input type="hidden" name="periodname">
<input type="hidden" name="pstartdate">
<input type="hidden" name="penddate">

<!-- Table Title-->
<table class="title" height="20" cellSpacing="0" cellPadding="0" width="750" border="0">
<tr>
<th class="title" valign="bottom" class="title">
New and Late Ad Report
</th>
</tr>
</table>

<br>

<!-- Table Data to Enter -->
<table height="20" cellSpacing="0" cellPadding="0" width="750" border="0">
<!-- Row Headings -->
<tr>
<th class="heading" width="150" align="left">Select a date:</th>
<th class="heading" width="300" align="left">Select a start/end date:</th>
<th class="heading" width="150" align="left">Select a period:</th>
<th class="heading" width="150" align="left">Select a user:</th>
</tr>

<!-- Row containing items to enter data -->
<tr>
<!-- ENTER A DATE -->
<td class="item" width="150">
<input class="textbox" type="text" name="selDate" value="" size="10">
<input type="image" align="middle" value="cal1" src="pdate.gif" name="cal1" onclick="cal.select(document.forms['data'].selDate,'cal1','MM/dd/yyyy'); return false;">
</td>

<!-- ENTER START AND END DATE -->
<td class="item" width="300">
<input class="textbox" type="text" name="startDate" value="" size="10">
<input type="image" align="middle" value="cal2" src="pdate.gif" name="cal2" onclick="cal.select(document.forms['data'].startDate,'cal2','MM/dd/yyyy');return false;">
<input class="textbox" type="text" name="endDate" value="" size="10">
<input type="image" align="middle" value="cal3" src="pdate.gif" name="cal3" onclick="cal.select(document.forms['data'].endDate,'cal3','MM/dd/yyyy');return false;">
</td>

<!-- SELECT A PERIOD -->
<td class="item" width="150">
<select size="1" class="textbox" id="periodname" name="periodname" onChange="getPeriodDates(this)">
<option value="">-</option>
<?php
//Creates query to retrieve the data to be used in the drop down box.
$query="SELECT PeriodName, StartDate, EndDate FROM tblPeriod";
if ($hResult=mysql_query($query))
{
while ($hFetch=mysql_fetch_array($hResult))
{
$periodname=$hFetch["PeriodName"];
$pstartdate=$hFetch["StartDate"];
$penddate=$hFetch["EndDate"];
echo "<option value='$periodname||$pstartdate||$penddate'\">".$periodname."</option>";
}
}
?>
</select>

</td>

<!-- SELECT A USER -->
<td class="item" width="150">
<select size="1" class="textbox" id="username" name="username">
<option value="">-</option>
/*
<?php
//Creates query to retrieve the data to be used in the drop down box.
$query="SELECT PeriodName, StartDate, EndDate FROM tblPeriod";
if ($hResult=mysql_query($query))
{
while ($hFetch=mysql_fetch_array($hResult))
{
$periodname=$hFetch["PeriodName"];
$startdate=$hFetch["StartDate"];
$enddate=$hFetch["EndDate"];
echo "<option value='$periodname||$startdate||$enddate'\">".$periodname."</option>";
}
}
?>
*/
</select>
</td>

</tr>
</table>

<input class="add" type="button" value="Submit" onclick="doSave(this, 'Save')"></td>



<?php

//COMMAND
if (isset($_POST["command"]))
$command = $_POST["command"];
//SELECTED DATE
if (isset($_POST["selDate"]))
$postselDate = $_POST["selDate"];
//START DATE
if (isset($_POST["startDate"]))
$poststartdate = $_POST["startDate"];
//END DATE
if (isset($_POST["endDate"]))
$postenddate = $_POST["endDate"];
//PERIOD NAME
if (isset($_POST["periodname"]))
$postperiodname = $_POST["periodname"];
//PERIOD START DATE
if (isset($_POST["pstartdate"]))
$postpstartdate = $_POST["pstartdate"];
//PERIOD END DATE
if (isset($_POST["penddate"]))
$postpenddate = $_POST["penddate"];

//COMPARE COMMAND, IF IT IS SAVE, CHECK INFO AND RUN APPROPRIATE QUERIES. DISPLAY INFO.
if (strcmp("Save", $command) == 0)
{
//CHECK FOR MISSING PARAMETERS
//Check that a date has been entered.
if ($postselDate == null AND $poststartdate == null AND $postenddate == null AND $postperiodname == null)
die("Enter a date");
//Check that only a date or period has been entered.
if ($postselDate != null AND $postperiodname != null)
die("Either enter a date or select a period");
//Check that only a date or a date range has been selected.
if ($postselDate != null AND ($poststartdate != null OR $postenddate != null))
die("Either enter a single date or a date range");
//Check that only a period or a date range has been selected.
if ($postperiodname != null AND ($poststartdate != null OR $postenddate != null))
die("Either enter a date range or select a period");
//Check that if a start date has been entered, an end date has also been entered.
if ($poststartdate == null AND $postenddate != null)
die("Enter a start date");
if ($poststartdate != null AND $postenddate == null)
die("Enter an end date");
//Check that end date is higher than start date.
if ($poststartdate > $postenddate)
die("End date must be later than start date.");

//Assign a variable to be used in case statement.
if ($postselDate != null AND $poststartdate == null AND $postenddate == null AND $postperiodname == null)
{
$parameterType = "sglDate";
}
elseif ($poststartdate != null AND postenddate != null AND $postselDate == null AND $postperiodname == null)
{
$parameterType = "dteRange";
}
elseif (postperiodname != null AND $postselDate == null AND $poststartdate == null AND $postenddate == null)
{
$parameterType = "dtePeriod";
}
else
{
die("Error");
}

//Create queries depending on what parameter has been entered.
switch ($parameterType)
{
case "sglDate":
$queryNew = "SELECT COUNT(job_id) from tblads WHERE DATE(action_time)=STR_TO_DATE('$postselDate','%m/%d/%Y');";
$queryLate = "SELECT COUNT(if(TIMEDIFF(deadline, adintime)<0,'late','')) FROM tblads WHERE ((if(TIMEDIFF(deadline, adintime)<0,'late','')='late')) AND DATE(action_time)=STR_TO_DATE('$postselDate','%m/%d/%Y');";
$queryResults = "SELECT * from tblads WHERE DATE(action_time)=STR_TO_DATE('$postselDate','%m/%d/%Y');";
break;
case "dteRange":
$queryNew = "SELECT COUNT(job_id) from tblads WHERE DATE(action_time)>=STR_TO_DATE('$poststartdate','%m/%d/%Y') AND DATE(action_time)<=STR_TO_DATE('$postenddate','%m/%d/%Y');";
$queryLate = "SELECT COUNT(if(timediff(deadline,adintime)<0,'late','')) FROM tblads WHERE ((if(timediff(deadline,adintime)<0,'late','')='late')) AND DATE(action_time)>=str_to_date('$poststartdate','%m/%d/%Y') AND DATE(action_time)<=str_to_date('$postenddate','%m/%d/%Y');";
break;
case "dtePeriod":
$queryNew = "SELECT COUNT(job_id) FROM tblads WHERE DATE(action_time)>='$postpstartdate' AND DATE(action_time)<='$postpenddate';";
$queryLate = "SELECT COUNT(if(timediff(deadline,adintime)<0,'late','')) FROM tblads WHERE ((if(timediff(deadline,adintime)<0,'late','')='late')) AND DATE(action_time)>='$postpstartdate' AND DATE(action_time)<='$postpenddate';";
} //Closes switch

//Runs both queries
$resultNew = mysql_query($queryNew, $link);
if(!$resultNew)
die("Invalid query: ".mysql_error()."<br>".$queryNew);
$resultLate = mysql_query($queryLate, $link);
if(!$resultLate)
die("Invalid query: ".mysql_error()."<br>".$queryLate);
//Fetches the query's result
while($row = mysql_fetch_array($resultNew))
{
$NewAds = $row[0];
}
while($row = mysql_fetch_array($resultLate))
{
$LateAds = $row[0];
}

if ($NewAds == 0)
{
echo "There are no ads for this date.";
}
else
{
//Create table to hold queries results.
?>
<table class="title" height="20" cellSpacing="0" cellPadding="0" width="300" border="0">
<tr>
<th class="heading" width="100" align="center">Total New Ads</th>
<th class="heading" width="100" align="center">Total Late Ads</th>
<th class="heading" width="100" align="center">Percentage</th>
</tr>
<tr>
<td class="item" width="100" align="center"><?php echo $NewAds ?></td>
<td class="item" width="100" align="center"><?php echo $LateAds ?></td>
<td class="item" width="100" align="center"><?php echo number_format($LateAds/$NewAds*100,2,'.','').'%' ?></td>
</tr>
</table>
<?php
echo '<input type="button" value="Go To" onClick="location.href=\'view_results.php\'">';
}
}
?>

</table>
</form>
</body>
</html>




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users