Ultimate Column Generator
One of the first things you learn with PHP is how to query the database and things rock on nicely provided there's only row of data being presented in each table row.
But that's not real life and then you've got problems. Not big problems but the code can get messy and it's tricky for beginners.
How the Ultimate Column Generator can help
This function outputs an array of data with all the information required to process the table. In this example I've got alot of thngs being coded so that you can see how it works, but in reality all you need is the function called getColInfo() and you call it with
$colInfo = getColInfo(4);
or however many columns you require - because this will normally be hardcoded when you design your page. Then use the array as the example shows and you're up and running with clean, readable code which will be easy to maintain later on.
Review: Moshi Monsters
MoshiMonsters hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
Review: Moshi Monsters
MoshiMonsters hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
Review: Moshi Monsters
MoshiMonsters hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
Review: Moshi Monsters
These guys hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
Review: Moshi Monsters
These guys hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
Review: Moshi Monsters
These guys hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
moshimonsters
|
Review: Moshi Monsters
MoshiMonsters hardly need the publicity since they appear to have a PR company getting them phenomenal publicity
|
Review: Gambling Live
There's a huge amount of money to be made from exploiting the affiliate programs of the big gambling sites
|
Review: Gambling Live
There's a huge amount of money to be made from exploiting the affiliate programs of the big gambling sites
|
Review: Gambling Live
There's a huge amount of money to be made from exploiting the affiliate programs of the big gambling sites
|
<?php /* Wee function to make getting data easier I sometimes add security checks etc in here */ function getGetVar($name, $default) { global $_GET; if (isset($_GET[$name])) $output = $_GET[$name]; else $output = $default; return $output; }//getGetVar($name, $default)
/* Used to generate some dummy data */ function getData($items, $debug=false) { $output = array(); $num = 0; for ($i = 1; $i <= $items; $i++) { $num = rand($num, $num + 100); $output[] = $num; } if ($debug) var_dump_extra($output); return $output; }//getData($items)
/* The secret behind the generator */ function getColInfo($columns, $debug=false) { $output = array(); for ($i = 0; $i <= $columns; $i++) { $output[$i] = array('next' => $i+1, 'start' => '', 'end' => ''); } $output[0]['start'] = '<tr>'; $output[$columns]['end'] = '</tr>'; $output[$columns]['next'] = 0; if ($debug) var_dump_extra($output); return $output; }
/* Normally you would have a predefined number of columns so no need * for this part of the code */ $columns = getGetVar('columns',2); $items = getGetVar('items', 11);
$columns--; $columns = max($columns, 1); $columns = min($columns, 8); $items = max($items, $columns); $items = min($items, 100); $debug = (getGetVar('debug',0)==1); $live = (getGetVar('live',1)==1); /* end of "demo only" code */
//get the structural information about the data $colInfo = getColInfo($columns, $debug);
echo "<table border='1' cellpadding='4' cellspacing='0'>"; //toggle controls the column count $toggle = 0; //rowclass controls the striping of the rows and requires a stylesheet to have //classes called row0 and row1 $rowclass = 0;
if ($live) { //call the database with a query and get back some data $result = getLiveResult($items); while($row = mysql_fetch_array($result)) { $name = stripslashes($row['post_title']); $description = stripslashes($row['post_content']); $description = strip_tags($description,'<p>'); $bits = explode('.', $description); $description = $bits[0]; // echo "{$colInfo[$toggle]['start']}<td align='top' class='row{$rowclass}'> <a href='http://www.itamer.com/{$row['post_name']}/{$row['ID']}/' title=\"{$name}\" target='_blank'>{$name}</a><br> {$description} </td>{$colInfo[$toggle]['end']}"; $toggle = $colInfo[$toggle]['next']; if ($toggle == 0) $rowclass = 1 - $rowclass; } } else { //this would normally be a database query $result = getData($items, $debug); foreach($result as $item) { echo "{$colInfo[$toggle]['start']} <td class='row{$rowclass}'>{$item}</td>{$colInfo[$toggle]['end']}"; $toggle = $colInfo[$toggle]['next']; if ($toggle == 0) $rowclass = 1 - $rowclass; } } if ($toggle > 0) echo '</tr>'; echo '</table>'; ?>
You can also collect and discuss this code at WeberDev: Ultimate Column Generator
|
© 2000 - 2008 Estatement Ltd
|