archive menu
I am trying to modify an 'archive menu' that Ray and I put together ages ago and have managed to get the menu bit sorted out where it shows the month/year and if there are any entries. HJowvere, where I am struggling is displaying the list of articles based on the month (IE from the below link, the bit I am struggling with is the page after you click on, for example, May 2013.) I just dont know what or how to structure the recordset to do this.
http://clients.motley.co.uk/test/blog-with-archive2.php
I have a table with 4 columns... Blog ID, BlogDate, Content and Title
This is the recordset I am using for the menu itself:
SELECT Date_format(blog.BlogDate, '%M, %Y') as contDate, COUNT(*) AS cc, YEAR(blog.BlogDate) as ContentYear, MONTH(blog.BlogDate) as ContentMonth
FROM blog
WHERE BlogID IS NOT Null
GROUP BY YEAR(blog.BlogDate), MONTH(blog.BlogDate)
ORDER BY blog.BlogDate DESC
This is the recordset that Ray created I am trying to modify to show the entries that are stored based on their month and year:
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$passedYear_Recordset1 = "-1";
if (isset($_SESSION["passedYear"])) {
$passedYear_Recordset1 = $_SESSION["passedYear"];
}
$passedYear2_Recordset1 = "-1";
if (isset($_SESSION["passedYear"])) {
$passedYear2_Recordset1 = $_SESSION["passedYear"];
}
$passedMonth_Recordset1 = "-1";
if (isset($_SESSION["passedMonth"])) {
$passedMonth_Recordset1 = $_SESSION["passedMonth"];
}
$passedMonth2_Recordset1 = "-1";
if (isset($_SESSION["passedMonth"])) {
$passedMonth2_Recordset1 = $_SESSION["passedMonth"];
}
mysql_select_db($database_PowerCMSConnection, $PowerCMSConnection);
$query_Recordset1 = sprintf("SELECT C2.ContentGroup, C2.ContentDate, C2.ContentPageSetOrder FROM pcms2_contents AS C1 LEFT OUTER JOIN pcms2_contents AS C2 ON C2.ContentPagesetParentID = C1.ContentID WHERE C1.ContentGroup = 'Blog' AND C2.ContentPageSetOrder IS NOT NULL AND (YEAR(C2.ContentDate) = %s OR -1 = %s) AND (MONTH(C2.ContentDate) = %s OR -1 = %s) GROUP BY C2.ContentPageSetOrder ORDER BY C2.ContentPageSetOrder DESC ", GetSQLValueString($passedYear_Recordset1, "int"),GetSQLValueString($passedYear2_Recordset1, "int"),GetSQLValueString($passedMonth_Recordset1, "int"),GetSQLValueString($passedMonth2_Recordset1, "int"));
$Recordset1 = mysql_query($query_Recordset1, $PowerCMSConnection) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>