Mega Code Archive

 
Categories / Php / HTML
 

Ultimate Column Generator

<?php /* Wee function to make getting $_GET 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', 10); $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',0)==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['name']); $description = stripslashes($row['description']); echo "{$colInfo[$toggle]['start']}<td align='top' class='row{$rowclass}'> <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>'; ?>