Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2

Thread: Array Questions

  1. #1
    New Coder
    Join Date
    Sep 2005
    Location
    Steger, IL
    Posts
    73
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Question Array Questions

    I am about "three weeks old" as far as PHP knowledge goes, and I am trying to complete an assignment where I need to modify code that processes POST information from a form, to use arrays instead of the current code.

    I am not sure even where to start with this. If somene could show me an example, I think I could probably get it. There are at least two places in this code where I should probably be able to use arrays, but I am just struggling to wrap my brain around it without an example. The code is below...

    <?php
    // create short variable names
    $tireqty = $_POST['tireqty'];
    $oilqty = $_POST['oilqty'];
    $sparkqty = $_POST['sparkqty'];
    $coolqty = $_POST['coolqty'];
    $wiperqty = $_POST['wiperqty'];
    $address = $_POST['address'];

    $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
    ?>
    <html>
    <head>
    <title>Bob's Auto Parts - Order Results</title>
    </head>
    <body>
    <h1>Bob's Auto Parts</h1>
    <h2>Order Results</h2>
    <?php
    $date = date('H:i, jS F');

    echo '<p>Order processed at ';
    echo $date;
    echo '</p>';

    echo '<p>Your order is as follows: </p>';

    $totalqty = 0;
    $totalqty = $tireqty + $oilqty + $sparkqty + $coolqty + $wiperqty;
    echo 'Items ordered: '.$totalqty.'<br />';

    if( $totalqty == 0)
    {
    echo 'You did not order anything on the previous page!<br />';
    }
    else
    {
    if ( $tireqty>0 )
    echo $tireqty.' tires<br />';
    if ( $oilqty>0 )
    echo $oilqty.' bottles of oil<br />';
    if ( $sparkqty>0 )
    echo $sparkqty.' spark plugs<br />';
    if ( $coolqty>0 )
    echo $coolqty.' coolant<br />';
    if ($wiperqty>0 )
    echo $wiperqty.' wiper blades<br />';
    }

    $totalamount = 0.00;

    define('TIREPRICE', 100);
    define('OILPRICE', 10);
    define('SPARKPRICE', 4);
    define('COOLPRICE', 1);
    define('WIPERPRICE', 3);

    $totalamount = $tireqty * TIREPRICE
    + $oilqty * OILPRICE
    + $sparkqty * SPARKPRICE
    + $coolqty * COOLPRICE
    + $wiperqty * WIPERPRICE;

    $totalamount = $totalamount + ($totalamount * .10);
    $totalamount=number_format($totalamount, 2, '.', ' ');

    echo '<p>Total of order is '.$totalamount.'</p>';
    echo '<p>Address to ship to is '.$address.'</p>';

    $outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t"
    .$sparkqty." spark plugs\t".$coolqty." coolant\t".$wiperqty." wiper blades\t\$".$totalamount
    ."\t". $address."\n";

    // open file for appending
    @ $fp = fopen("$DOCUMENT_ROOT/folder2/orders.txt", 'ab');

    flock($fp, LOCK_EX);

    if (!$fp)
    {
    echo '<p><strong> Your order could not be processed at this time. '
    .'Please try again later.</strong></p></body></html>';
    exit;
    }

    fwrite($fp, $outputstring, strlen($outputstring));
    flock($fp, LOCK_UN);
    fclose($fp);

    echo '<p>Order written.</p>';
    ?>
    <p> Click <A HREF="vieworders2.php"><I>HERE</I></A> to see all submitted orders.</p>
    </body>
    </html>

  • #2
    Super Moderator
    Join Date
    May 2002
    Location
    Perth Australia
    Posts
    4,108
    Thanks
    11
    Thanked 101 Times in 99 Posts
    well the $_POST array is indeed an array , and you could (should) use it as such ...currently you dereference the array with ...

    // create short variable names
    $tireqty = $_POST['tireqty']; ....etc

    which really is of little value other than some think it makes code more readable (I think the opposite) , also leaving $_POST var's as an array would let you take advantage of all the array functions to manipulate the data e.g.

    if ( $tireqty>0 )
    echo $tireqty.' tires<br />';
    if ( $oilqty>0 )
    .....etc

    the above would be far neater if you used say foreach() to iterate through the $_POST array ... I wont give the code but the manual has all the examples you need.

    You could also define the prices in an array , constants are fine for small collections of important constant data but not normally used for variables (you may change a price for buying in bulk)
    Last edited by firepages; 09-17-2005 at 05:27 PM.
    resistance is...

    MVC is the current buzz in web application architectures. It comes from event-driven desktop application design and doesn't fit into web application design very well. But luckily nobody really knows what MVC means, so we can call our presentation layer separation mechanism MVC and move on. (Rasmus Lerdorf)


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •