Multiple Columns

I’m back again!

This is the same script that I have been using elsewhere on my site, but now I need to figure out how to make it fill multiple columns instead of multiple pages (while still retaining the sort function by clicking on the title). Right now it is set to display up to 90 records on one page, then automatically start creating multiple pages. What I would like is for it to go to 2 columns automatically after 45 records. Since this data is just one column this time instead of multiple columns to begin with, there is plenty of room to have it fill 2-3 columns on the page before needing to go into Pagination.

If that doesn’t make sense, let me know.

[php]<?php

//DATABASE SETTINGS
$config[‘host’] = “localhost”;
$config[‘user’] = “”;
$config[‘pass’] = “”;
$config[‘database’] = “”;
$config[‘table’] = “”;
$config[‘nicefields’] = true; //true or false | “Field Name” or “field_name”
$config[‘perpage’] = 90;
$config[‘showpagenumbers’] = true; //true or false
$config[‘showprevnext’] = true; //true or false

/******************************************/
//SHOULDN’T HAVE TO TOUCH ANYTHING BELOW…
//except maybe the html echos for pagination and arrow image file near end of file.

include ‘scripts/Pagination.php’;
$Pagination = new Pagination();

//CONNECT
mysql_connect($config[‘host’], $config[‘user’], $config[‘pass’]);
mysql_select_db($config[‘database’]);

//get total rows
$totalrows = mysql_fetch_array(mysql_query("SELECT count(*) as total FROM ".$config['table'].""));

//limit per page, what is current page, define first record for page
$limit = $config[‘perpage’];
if(isset($_GET[‘page’]) && is_numeric(trim($_GET[‘page’]))){$page = mysql_real_escape_string($_GET[‘page’]);}else{$page = 1;}
$startrow = $Pagination->getStartRow($page,$limit);

//create page links
if($config[‘showpagenumbers’] == true){
$pagination_links = $Pagination->showPageNumbers($totalrows[‘total’],$page,$limit);
}else{$pagination_links=null;}

if($config[‘showprevnext’] == true){
$prev_link = $Pagination->showPrev($totalrows[‘total’],$page,$limit);
$next_link = $Pagination->showNext($totalrows[‘total’],$page,$limit);
}else{$prev_link=null;$next_link=null;}

//IF ORDERBY NOT SET, SET DEFAULT
if(!isset($_GET[‘orderby’]) OR trim($_GET[‘orderby’]) == “”){
//GET FIRST FIELD IN TABLE TO BE DEFAULT SORT
$sql = “SELECT advertisers FROM ".$config['table']." LIMIT 1”;
$result = mysql_query($sql) or die(mysql_error());
$array = mysql_fetch_assoc($result);
//first field
$i = 0;
foreach($array as $key=>$value){
if($i > 0){break;}else{
$orderby=$key;}
$i++;
}
//default sort
$sort=“ASC”;
}else{
$orderby=mysql_real_escape_string($_GET[‘orderby’]);
}

//IF SORT NOT SET OR VALID, SET DEFAULT
if(!isset($_GET[‘sort’]) OR ($_GET[‘sort’] != “DESC” AND $_GET[‘sort’] != “ASC”)){
//default sort
$sort=“ASC”;
}else{
$sort=mysql_real_escape_string($_GET[‘sort’]);
}

//GET DATA
$sql = “SELECT advertisers,advertiserlink FROM ".$config['table']." ORDER BY $orderby $sort LIMIT $startrow,$limit”;
$result = mysql_query($sql) or die(mysql_error());

//START TABLE AND TABLE HEADER
echo “

\n”;
$array = mysql_fetch_assoc($result);
$i = 0;
foreach ($array as $key=>$value) {
if($config[‘nicefields’]){
$field = str_replace("_"," ",$key);
$field = ucwords($field);
}
$field = columnSortArrows($key,$field,$orderby,$sort);
if($i !=2 && $i!=1)
echo “\n”;
$i = $i +1;
}
echo “\n”;

//reset result pointer
mysql_data_seek($result,0);

//start first row style
$tr_class = “class=‘odd’”;

//LOOP TABLE ROWS
while($row = mysql_fetch_assoc($result)){

echo “<tr “.$tr_class.”>\n”;

$i=0; //used to count fields…
foreach ($row as $field=>$value)
{
if($i==0){ $advertisers=$value; }
elseif($i==1){ echo “

”; }
$i=$i+1;
}
echo “\n”;
//switch row style
if($tr_class == "class='odd'"){
	$tr_class = "class='even'";
}else{
	$tr_class = "class='odd'";
}

}

//END TABLE
// echo “

” . $field . “
” . $advertisers . “
\n”;
// if(!($prev_link==null && $next_link==null && $pagination_links==null)){
// echo ‘
’."\n";
// echo $prev_link;
// echo $pagination_links;
// echo $next_link;
// echo “
\n”;
// }

/FUNCTIONS/

function columnSortArrows($field,$text,$currentfield=null,$currentsort=null){
//defaults all field links to SORT ASC
//if field link is current ORDERBY then make arrow and opposite current SORT

$sortquery = "sort=ASC";
$orderquery = "orderby=".$field;

if($currentsort == "ASC"){
	$sortquery = "sort=DESC";
}

if($currentsort == "DESC"){
	$sortquery = "sort=ASC";
}

if($currentfield == $field){
	$orderquery = "orderby=".$field;
}else{	
	$sortarrow = null;
}
return '<a href="?'.$orderquery.'&'.$sortquery.'" class="milink3">'.$text.'</a> '. $sortarrow;	

}

?>[/php]

Sponsor our Newsletter | Privacy Policy | Terms of Service