Doc203 |
08-28-2004 05:51 PM |
Coordinating a PHP script with a template
What I am trying to do is run a query and produce the results in a table. With Xenon's help I have gotten my php script to return the proper results when it is called so now I just need to make it happen within a forum page.
I made a basic template with header, navbar, footer etc and I have the php scipt call that template, but the only way I can seem to get my query results to display is above the header. I am assuming that I need to have the query run before the template is called, and that maybe I need to make another template that stores the query results in a table and then call that template within the basic template.
PHP Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'test'); // change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(
);
// get special data templates from the datastore
$specialtemplates = array(
);
// pre-cache templates used by all actions
$globaltemplates = array(
'TEST',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
$navbits = array();
$navbits[$parent] = 'Test Page';
$navbits = construct_navbits($navbits);
$start_date = "2004-07-01 00:00:00";
$end_date = "2004-07-31 00:00:00";
$stmt = "SELECT COUNT(post.postid) AS count, user.username
FROM post
LEFT JOIN user ON (user.userid = post.userid)
AND (UNIX_TIMESTAMP('$start_date')) <= post.dateline
AND post.dateline <= (UNIX_TIMESTAMP('$end_date'))
GROUP BY user.userid ORDER BY count DESC, username";
echo "<table border=1 cellspacing=0>";
$result = mysql_query($stmt) or die (mysql_error()."<br />Couldn't execute query: $stmt");
while($row = mysql_fetch_row($result))
{
echo "<tr>";
for($i = 0; $i < mysql_num_fields($result); $i++)
{
echo "<td>" . $row[$i] . "</td>";
}
echo "</tr>";
}
echo "</table>";
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('TEST') . '");');
$start_date = "2004-07-01 00:00:00";
$end_date = "2004-07-31 00:00:00";
$stmt = "SELECT COUNT(post.postid) AS count, user.username
FROM post
LEFT JOIN user ON (user.userid = post.userid)
AND (UNIX_TIMESTAMP('$start_date')) <= post.dateline
AND post.dateline <= (UNIX_TIMESTAMP('$end_date'))
GROUP BY user.userid ORDER BY count DESC, username";
echo "<table border=1 cellspacing=0>";
$result = mysql_query($stmt) or die (mysql_error()."<br />Couldn't execute query: $stmt");
while($row = mysql_fetch_row($result))
{
echo "<tr>";
for($i = 0; $i < mysql_num_fields($result); $i++)
{
echo "<td>" . $row[$i] . "</td>";
}
echo "</tr>";
}
echo "</table>";
?>
Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'test'); // change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(
);
// get special data templates from the datastore
$specialtemplates = array(
);
// pre-cache templates used by all actions
$globaltemplates = array(
'TEST',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
$navbits = array();
$navbits[$parent] = 'Test Page';
$navbits = construct_navbits($navbits);
$start_date = "2004-07-01 00:00:00";
$end_date = "2004-07-31 00:00:00";
$stmt = "SELECT COUNT(post.postid) AS count, user.username
FROM post
LEFT JOIN user ON (user.userid = post.userid)
AND (UNIX_TIMESTAMP('$start_date')) <= post.dateline
AND post.dateline <= (UNIX_TIMESTAMP('$end_date'))
GROUP BY user.userid ORDER BY count DESC, username";
echo "<table border=1 cellspacing=0>";
$result = mysql_query($stmt) or die (mysql_error()."<br />Couldn't execute query: $stmt");
while($row = mysql_fetch_row($result))
{
echo "<tr>";
for($i = 0; $i < mysql_num_fields($result); $i++)
{
echo "<td>" . $row[$i] . "</td>";
}
echo "</tr>";
}
echo "</table>";
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('TEST') . '");');
?>
Any help is once again appreciated!
|