Re: [PHP-DB] Shopping cart

[email protected] ("Max E.K")
Newsgroups php.db
Message-ID <1242478943.8096.1.camel@safari>
On Sat, 2009-05-16 at 10:54 +0100, Vernon St Croix wrote:
> Hi,
> 
> I am pretty new to PHP and I am trying to create a shopping cart. 
> 
> I keep on getting the below error when trying to show the shopping list. 
> 
> Any guidance that can be provided will be very much appreciated
> 
> Fatal error: Call to a member function query() on a non-object in C:\wamp\www\draft\basket.php on line 36
> 
> mysql_connect.php
> <?php
> $con = mysql_connect("localhost","root","");
> if (!$con)
>   {
>   die('Could not connect: ' . mysql_error());
>   }
> mysql_select_db("rum", $con);
> ?>
> 
> basket.php
> <?php 
>  include("mysql.class.php");
>  include ("header.php");
>  include ("mysql_connect.php");
>   include ("functions.php");
>  ?>
>  <div id="shopping">
> <h2>Rum Basket</h2>
> <?php
>     echo writeCart();
>     ?>
>  </div>
> <div id="rumlist">
>   <h2>Rum on Offer</h2>
>   <?php
>  
>  $sql= 'SELECT * FROM spirits BY id';
>   $result = $con->query($sql);
>  $output[]= '<ul>';
>  while ($row = $result->fetch()) {
>  $output[] = '<li>'.$row['name'].': &pound;'.$row['price'].'<br/><a href="cart.php?action=add&id=
>   '.$row['id'].'">Add to Cart</a></li>';
>     }
>     $output[] = '</ul>';
>   echo join ('', $output);
>    ?>
>   </div>
> 
> </div>
> <?php
>  include("footer.html");
> 
> ?>
> 
> 
> cart.php
> 
> <?php 
> 
>  include ("header.php");
>  
>  include ("mysql_connect.php");
>  
>  include ("functions.php");
>  
> 
> 
> $cart = $_SESSION['cart'];
> 
> 
> if(isset($_GET["action"]))
> { $action = $_GET["action"]; }
> else
> { $action = ""; }
> 
> 
> switch ($action) {
>  case 'add':
>   if ($cart) {
>    $cart .= ','.$_GET['id'];
>   } else {
>    $cart = $_GET['id'];
>   }
>   break;
>  case 'delete':
>   if ($cart) {
>    $items = explode(',',$cart);
>    $newcart = '';
>    foreach ($items as $item) {
>     if ($_GET['id'] != $item) {
>      if ($newcart != '') {
>       $newcart .= ','.$item;
>      } else {
>       $newcart = $item;
>      }
>     }
>    }
>    $cart = $newcart;
>   }
>   break;
>  case 'update':
>  if ($cart) {
>   $newcart = '';
>   foreach ($_POST as $key=>$value) {
>    if (stristr($key,'qty')) {
>     $id = str_replace('qty','',$key);
>     $items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart);
>     $newcart = '';
>     foreach ($items as $item) {
>      if ($id != $item) {
>       if ($newcart != '') {
>        $newcart .= ','.$item;
>       } else {
>        $newcart = $item;
>       }
>      }
>     }
>     for ($i=1;$i<=$value;$i++) {
>      if ($newcart != '') {
>       $newcart .= ','.$id;
>      } else {
>       $newcart = $id;
>      }
>     }
>    }
>   }
>  }
>  $cart = $newcart;
>  break;
> }
> $_SESSION['cart'] = $cart;
> 
> ?>
> 
> <div id="shopping">
> 
> <h2>Rum Basket</h2>
> 
> <?php
> echo writeCart();
> ?>
> 
> </div>
> 
> <div id="contents">
> 
> <h2>Please Check Quantities...</h2>
> 
> <?php
> echo showCart();
> ?>
> 
> <p><a href="basket.php">Back to Rum List</a></p>
> 
> </div>
> 
> </div>
> 
> 
> <?php
>  include("footer.html");
> 
> ?>
> 
> functions.php
> 
> <?php
> function writeCart() {
>  $cart = $_SESSION['cart'];
>  if (!$cart) {
>   return '<p>There is no alcohol in your Rum Basket</p>';
>  } else {
>   // Parse the cart session variable
>   $items = explode(',',$cart);
>   $s = (count($items) > 1) ? 's':'';
>   return '<p>There are<a href="cart.php">'.count($items).' item'.$s.' in your rum basket</a></p>';
>  }
> }
>   
>      function showCart() {
>  $cart = $_SESSION['cart'];
>  if ($cart) {
>   $items = explode(',',$cart);
>   $contents = array();
>   foreach ($items as $item) {
>    $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
>   }
>   $output[] = '<form action="cart.php?action=update" method="post" id="cart">';
>   $output[] = '<table>';
>   foreach ($contents as $id=>$qty) {
>    $sql = 'SELECT * FROM spirits WHERE id = '.$id;
>    $result = $con->query($sql);
>    $row = $result->fetch();
>    extract($row);
>    $output[] = '<tr>';
>    $output[] = '<td><a href="cart.php?action=delete&id='.$id.'" class="r">Remove</a></td>';
>    $output[] = '<td>'.$name.'</td>';
>    $output[] = '<td>&pound;'.$price.'</td>';
>    $output[] = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" ></td>';
>    $output[] = '<td>&pound;'.($price * $qty).'</td>';
>    $total += $price * $qty;
>    $output[] = '</tr>';
>   }
>   $output[] = '</table>';
>   $output[] = '<p>Grand total: &pound;'.$total.'</p>';
>   $output[] = '<div><button type="submit">Update cart</button></div>';
>   $output[] = '</form>';
>  } else {
>   $output[] = '<p>You shopping cart is empty.</p>';
>  }
>  return join('',$output);
> }
> 
> ?>
> 
> 
> 
> 
> Many Thanks
> 
> Vee

Hi,

if i look at the code of basket.php its only 33 lines  long, hence it
must be counting the includes as well.

Send me zip file of you project, i can help debug.

regards,

Max.
------------------------------------ 
Max E. Kimambo 
Franz-Stenzer-Str, 51 
12679 Berlin 

Office: +493053080013 
Mobile: +4917649520175 

------------------------------------ 
Fortune message of the moment 
You will triumph over your enemy. 
------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.