PDA

View Full Version : While loop only outputting one result?


MrBeastlymfe
04-27-2014, 02:51 PM
I am trying to get all the results from a table but the while loop is only outputting one thing?

home.php:
<?php

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

define('THIS_SCRIPT', 'home');
define('CSRF_PROTECTION', true);
// 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('home_page',
);

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

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir ('/path/to/your/forums');
require_once('./global.php');

// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################

$navbits = construct_navbits(array('' => 'Home Page'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'TGS News';
$News = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "homepage_news WHERE category != 'PlayStation' ORDER BY title,description DESC");

while($row = $vbulletin->db->fetch_array($News))
{
$pageID = $row['id'];
$ouput = '<a href="read.php?id='.$pageID.'"><span style="font-size:22px !important;margin-top:5px !important;">'.$row['title'].'</span></a><br><span style="padding-left:9px;">'.$row['description'].'</span><br>'.$row['username'].'';
}

if($_REQUEST['id'] == true)
{
include 'hp_read.php';
}

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('home_page');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
$templater->register('news', $ouput);
print_output($templater->render());

?>

Template:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
<head>
<title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
{vb:raw headinclude}
{vb:raw headinclude_bottom}
</head>
<body>

{vb:raw header}

{vb:raw navbar}

<div style="float: left; width: 650px">
<h2 class="blockhead">Site News</h2>
<div class="blockbody">
<div class="blockrow">
<div style="padding:10px 10px 10px 10px;">
<img src='holder.js/150x85' alt='Thumbnail' class="img-thumbnail img-responsive"/>
{vb:raw news}
{vb:raw description}
</div>
</div>
</div></br>
</div>

<div style="float: right; width: 315px">
<h2 class="blockhead">{vb:raw vboptions.bbtitle} Feed</h2>
<div class="blockbody">
<div class="blockrow">
<a class="twitter-timeline" href="https://twitter.com/TxShadowz" data-widget-id="301882168601354240">Tweets by @TxShadowz</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
</div></br>
</div>

<div style="float: left; width: 650px">
<h2 class="blockhead">Playstation News</h2>
<div class="blockbody">
<div class="blockrow">
{vb:raw ps_news}<br>
{vb:raw ps_desc}
</div>
</div></br>
</div>

{vb:raw footer}
<script src="http://imsky.github.com/holder/holder.js"></script>
</body>
</html>

kh99
04-27-2014, 03:06 PM
You want to change the assignment inside the loop to "$ouput .= " (add the '.'), so that you add to the string on each iteration instead of overwriting it.

MrBeastlymfe
04-27-2014, 03:26 PM
That worked! Thanks a lot!