Re: problem formatting output
| From: | David OBrien | Date: | Sun, 04 Jan 2015 03:46:14 +0000 |
| Subject: | Re: problem formatting output | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-324220@lists.php.net to get a copy of this message | ||
On Sat, Jan 3, 2015 at 10:31 PM, Tim Dunphy <bluethundr@gmail.com> wrote:
> Hey all,
>
> Followign along in php & mysql web development by Luke Welling and Laura
> Thompson I came along an example to format the output text file. The file
> was meant to hold the orders of a fctional online store.
>
> Here's the output of the code:
>
> Bob’s Auto PartsCustomer OrdersOrder DateTiresOilSpark
> PlugsTotalAddress9:49pm
> EST Saturday, 01/03/2015125$140.00960 Fairview Dr08753010:05pm EST
> Saturday, 01/03/2015125$140.00904 Sylvan Ave07632010:06pm EST Saturday,
> 01/03/2015334$346.00900 Sylvan Ave07632010:07pm EST Saturday, 01/03/2015125
> $140.00960 Fairview Dr087530
>
> As you can see, at the first line the address entry doesn't line up and
> then throws the rest of the form out of whack.
>
> Here's the code that I tried:
>
> <?php
> //create short variable name
> $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
> ?>
> <html>
> <head>
> <title>Bob’s Auto Parts - Customer Orders</title>
> </head>
> <body>
> <h1>Bob’s Auto Parts</h1>
> <h2>Customer Orders</h2>
> <?php
> //Read in the entire file.
> // Each order becomes an element in the array
> $orders= file("$DOCUMENT_ROOT/../orders/orders.txt");
> // count the number of orders in the array
> $number_of_orders = count($orders);
> if ($number_of_orders == 0) {
> echo "<p><strong>No orders pending. Please try again
> later.</strong></p>";
> }
> echo "<table border=\"1\">\n";
> echo "<tr><th bgcolor=\"#CCCCFF\">Order Date</th>
> <th bgcolor=\"#CCCCFF\">Tires</th>
> <th bgcolor=\"#CCCCFF\">Oil</th>
> <th bgcolor=\"#CCCCFF\">Spark Plugs</th>
> <th bgcolor=\"#CCCCFF\">Total</th>
> <th bgcolor=\"#CCCCFF\">Address</th>
> <tr>";
> for ($i=0; $i<$number_of_orders; $i++) {
> //split up each line
> $line = explode("\t", $orders[$i]);
> // keep only the number of items ordered
> $line[1] = intval($line[1]);
> $line[2] = intval($line[2]);
> $line[3] = intval($line[3]);
>
> /*
> for ($x = 0; $x <= count($line); $x++) {
> var_dump($line[$x]);
> echo "<br />";
> }
> */
>
> // output each order
> echo "<tr>
> <td>".$line[0]."</td>
> <td align=\"right\">".$line[1]."</td>
> <td align=\"right\">".$line[2]."</td>
> <td align=\"right\">".$line[3]."</td>
> <td align=\"right\">".$line[4]."</td>
> <td>".$line[5]."</td>
> </tr>";
> }
> echo "</table>";
>
> ?>
> </body>
> </html>
>
> I've tried staring at the code for a while, but unfortunately I can't seem
> to wrap my head around why this is outputting incorrectly. I was hoping
> some more experienced hands could have a look and let me know where I'm
> going wrong in this example.
>
> Certainly thanks for your help! This list is really a benefit to my ongoing
> education with PHP! And I definitely appreciate the help!
>
> Tim
>
> --
> GPG me!!
>
> gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
>
What's the generated html source code look like?