Re: Database abstraction?
| From: | Jim Lucas | Date: | Thu, 17 Apr 2008 15:14:24 +0000 |
| Subject: | Re: Database abstraction? | ||
| References: | 1 2 3 4 5 6 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-273182@lists.php.net to get a copy of this message | ||
Stut wrote:
On 17 Apr 2008, at 13:33, Jason Pruim wrote:Very good example, but I would remove data retrieval from the display of data. <?php $dataSet = array(); while ($row = mysqli_fetch_assoc($result)) { $dataSet[] = $row; } # do some other stuff # now display # Check to see if there is anything in the dataSet if ( count($dataSet) > 0 ) { echo '<table>'; # Get the names of the columns from the first result set $headers = array_keys($dataSet[0]); # Print the column names echo '<tr>'; foreach ( $headers AS $column_name ) { echo "<th>{$column_name}</th>"; } echo '</tr>'; # Now print your data foreach ( $dataSet AS $row ) { echo <<<ROW <tr> <td>{$row['FName']}</td> <td>{$row['LName']}</td> <td>{$row['Add1']}</td> <td>{$row['Add2']}</td> <td>{$row['City']}</td> <td>{$row['State']}</td> <td>{$row['Zip']}</td> <td>{$row['XCode']}</td> <td>{$row['Record']}</td> </tr> ROW; } echo '</table>'; } ?> -- Jim Lucas "Some men are born to greatness, some achieve greatness, and some have greatness thrust upon them." Twelfth Night, Act II, Scene V by William ShakespeareMaybe I'm showing my ignorance here in programming... Maybe it's because I delt with a kid who decided to scream for a good share of the night and I'm sleep deprived :) But in my current system I have this: echo <<<HTMLecho <<<HTML<div> <table border="1"> <tr> <td><a href="?order=a">First Name</a></td> <td><a href="?order=b">Last Name</a></td> <td><a href="?order=c">Address 1</a></td> <td><a href="?order=d">Address 2</a></td> <td><a href="?order=e">City</a></td> <td><a href="?order=f">State</a></td> <td><a href="?order=g">Zip</a></td> <td><a href="?order=h">Code</a></td> <td><a href="?order=i">ID #</a></td>HTML;while($row = mysqli_fetch_assoc($result)) { //display the info using heredoc syntacecho <<<HTML<tr> <td>{$row['FName']}</td> <td>{$row['LName']}</td> <td>{$row['Add1']}</td> <td>{$row['Add2']}</td> <td>{$row['City']}</td> <td>{$row['State']}</td> <td>{$row['Zip']}</td> <td>{$row['XCode']}</td> <td>{$row['Record']}</td>HTML; } What I want to do is take that first block of code, the one with the links for sorting, and instead of this: "<td><a href="?order=a">First Name</a></td>" I want to put something more like this: "<td><a href="?order=a">$FIELDNAMES[$field{$id}]</a></td>" So I can grab the field names from the database, instead of hardcoding them into my program. I think I am sleep deprived because the more I tried to clarify it... the harder it got for me to understand :)<div> <table border="1">\HTML; $first = true; while ($row = mysqli_fetch_assoc($result)) {if ($first) { echo '<tr>'; foreach (array_keys($row) as $field) { echo '<td>'.htmlentities($field).'</td>'; } echo '</tr>'; $first = false; }// Output the row here as above} -Stut