0

I know how to print data from database on html table but i have one task that i can not understand, and i can not do it. I have a table in database and when i select those data i want them to display on html table but something like this:

Image http://img683.imageshack.us/img683/9350/tablea.png

2 Answers 2

2

To achieve a table layout like that you just need to condition the placement of the end of your table rows.

<table>
  <tr>
<?php
  $count = 0;
  while($row = mysql_fetch_assoc($result)) :
    $count++;
?>
    <td><?php echo $row['value'] ?></td>
<?php if($count % 2 == 0 || $count == mysql_num_rows($res)) : ?>
  </tr>
<?php if($count != mysql_num_rows($result)) : ?>
  <tr>
<?php endif; ?>
<?php endif; ?>
<?php endwhile; ?>
</table>

What the above does is use the modulus operator (%, calculates the remainder from division) to print a closing and opening row tag whenever we're at an evenly numbered result.

Also, if you wanted to change your table layout to be 3 or 4 columns wide all you need to do is change the number applied to the modulus:

$count % 3 == 0 //3 columns
$count % 4 == 0 //4 columns, etc
Sign up to request clarification or add additional context in comments.

Comments

1
<table>
    <?php while (TRUE) { ?>
        <?php
            // Make an array of n rows. Trailing items may be FALSE if there
            // are not enough rows to fill the table row.
            //
            $rows= array();
            for ($i= 0; $i<n; $i++)
                $rows[$i]= mysql_fetch_assoc($result);
            if (!$row[0])
                break;
        ?>
        <tr>
            <?php foreach ($rows as $row) { ?>
                <td>
                    <?php if ($row) { ?>
                        Value: <?php echo(htmlspecialchars($row['value']); ?>
                    <?php } ?>
                </td>
            <?php } ?>
        </tr>
    <?php } ?>
</table>

3 Comments

Nice example of spaghetti-coding
What are you talking about? This is a single consistent markup tree, which is the precise opposite of “spaghetti code”. You can see from the indentation exactly where each element and PHP structure begins and ends, which makes it much more maintainable than random echo​s hidden inside a large block of PHP.
I think it would be far more readable if it used less switching between parse and output mode. I read your 'proper PHP tutorial' (stackoverflow.com/questions/2119083/…) question and I agree with your views except for one thing: teach people new to the language to use a templating system from the very beginning.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.