close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

archive menu

Thread began 5/16/2013 4:33 am by Jamie | Last modified 5/17/2013 2:01 pm by Jamie | 1737 views | 6 replies |

Jamie

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);
?>
Sign in to reply to this post

Jason ByrnesWebAssist

I'll need to troubleshoot directly, see the private message section.

Sign in to reply to this post

Jamie

Oki doki..see PM

Sign in to reply to this post

Jason ByrnesWebAssist

The original recordset that Ray created was for use with the Power CMS Contents table.

you are using your own blog table which has a much simpler structure:

BlogID
BlogDate
Content
Title


Since your structure is much simpler, you have no need for using the C! and C2 aliases and creating the inner join


I corrected the problem by chanig the sql code:

php:
$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"));



to:

php:
$query_BlogRS = sprintf("SELECT * FROM blog  WHERE BlogID IS NOT NULL AND (YEAR(BlogDate) = %s OR -1 = %s) AND (MONTH(BlogDate) = %s OR -1 = %s) GROUP BY BlogID ORDER BY BlogID DESC", GetSQLValueString($passedYear_BlogRS, "int"),GetSQLValueString($passedYear2_BlogRS, "int"),GetSQLValueString($passedMonth_BlogRS, "int"),GetSQLValueString($passedMonth2_BlogRS, "int"));
Sign in to reply to this post

Jamie

thanks Jason, thats where I was sturggling insofar as simplifying the recordset... I just didnt know what could/couldnt be removed to achieve the same effect.

I have checked the page itself and it doesnt seem to be 'working'. The following is displayed on the visible page at the moment when you click on one of the months from the menu:

array(4) { ["BlogID"]=> string(1) "6" ["BlogDate"]=> string(19) "2013-05-16 11:48:52" ["Content"]=> string(212) "

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam accumsan molestie lectus, ac mattis velit congue ac. Aliquam erat volutpat. Vestibulum ac ultricies dui. Etiam non est est, at ornare lorem.
" ["Title"]=> string(7) "Title 6" }

Sign in to reply to this post

Jason ByrnesWebAssist

Sorry, i had left troubleshooting code behind on the page, This was how i found the table structure.

i have removed the code now.

Sign in to reply to this post

Jamie

No probs and many thanks. Have a great weekend

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...