PDA

View Full Version : [Forum] Display custom table SQL query with while loop


borgalliance
08-15-2011, 03:43 PM
Original: https://www.vbulletin.com/forum/showthread.php/385945-Using-templates-display-custom-table-SQL-query-within-while-loop

I've created a template within my style so that it keeps the same look at feel of or forum. The variable $out is only showing the <th> before and after the while loop, but not the <tr><td> output of loop itself.


Am I missing something here?

custom_file.php

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'custom_file'); // change this depending on your filename
define('CSRF_PROTECTION', true);


// ################### 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(
'custom_file',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');



if (empty($vbulletin->userinfo['userid']))
{
print_no_permission();
}


$output = "<table><th>1</th><th>2</th><th>3</th><th>4</th>";
$query = "SELECT * FROM test_table ORDER BY Date DESC";

while($row = $db->fetch_array($query))
{
$output .= "<tr><td>".$row['0']."</td><td>".$row['1']."</td><td>".$row['2']."</td><td>".$row['3']."</td><td>".$row['4']."</td></tr>";
}

$output .="</table>";

$navbits = array();
$navbits[$parent] = 'Test Table';
$templater = vB_Template::create('custom_file');
$navbar = render_navbar_template(construct_navbits($navbits) );
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('out', $output);
print_output($templater->render());
?>


custom_file template

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header

$navbar

$out

$footer
</body>
</html>

kh99
08-15-2011, 05:16 PM
You're missing the actual query call:

$output = "<table><th>1</th><th>2</th><th>3</th><th>4</th>";
$query = "SELECT * FROM test_table ORDER BY Date DESC";

$results = $db->query_read($query);

while($row = $db->fetch_array($results))
{
$output .= "<tr><td>".$row['0']."</td><td>".$row['1']."</td><td>".$row['2']."</td><td>".$row['3']."</td><td>".$row['4']."</td></tr>";
}

borgalliance
08-15-2011, 07:32 PM
Thanks a ton! Definitely spent too much time looking too hard and didn't see what I was missing. Much appreciated! Even works with the <vb if> stuff for different usergroups in the production page.