Και δουλεύει και δεν δουλεύει!

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
invader7
Δημοσιεύσεις: 78
Εγγραφή: 24 Ιαν 2009 22:02

Και δουλεύει και δεν δουλεύει!

Δημοσίευση από invader7 » 22 Ιούλ 2010 03:40

Γειά σας παιδιά, προσπαθώ να ενσωματώσω σε ένα σαιτ κάποιο shopping cart που βρήκα. Λοιπόν το πρόβλημα μου είναι το εξής, όταν πάω απευθείας στο basket.php δηλαδή:

Κώδικας: Επιλογή όλων

<?php
// Include MySQL class
require_once&#40;'/../basket/mysql.class.php'&#41;;
// Include database connection
require_once&#40;'/../basket/global.inc.php'&#41;;
// Include functions
require_once&#40;'/../basket/functions.inc.php'&#41;;
// Start the session
session_start&#40;&#41;;
// Process actions
$cart = $_SESSION&#91;'cart'&#93;;
$action = $_GET&#91;'action'&#93;;
switch &#40;$action&#41; &#123;
	case 'add'&#58;
		if &#40;$cart&#41; &#123;
			$cart .= ','.$_GET&#91;'id'&#93;;
		&#125; else &#123;
			$cart = $_GET&#91;'id'&#93;;
		&#125;
		break;
	case 'delete'&#58;
		if &#40;$cart&#41; &#123;
			$items = explode&#40;',',$cart&#41;;
			$newcart = '';
			foreach &#40;$items as $item&#41; &#123;
				if &#40;$_GET&#91;'id'&#93; != $item&#41; &#123;
					if &#40;$newcart != ''&#41; &#123;
						$newcart .= ','.$item;
					&#125; else &#123;
						$newcart = $item;
					&#125;
				&#125;
			&#125;
			$cart = $newcart;
		&#125;
		break;
	case 'update'&#58;
	if &#40;$cart&#41; &#123;
		$newcart = '';
		foreach &#40;$_POST as $key=>$value&#41; &#123;
			if &#40;stristr&#40;$key,'qty'&#41;&#41; &#123;
				$id = str_replace&#40;'qty','',$key&#41;;
				$items = &#40;$newcart != ''&#41; ? explode&#40;',',$newcart&#41; &#58; explode&#40;',',$cart&#41;;
				$newcart = '';
				foreach &#40;$items as $item&#41; &#123;
					if &#40;$id != $item&#41; &#123;
						if &#40;$newcart != ''&#41; &#123;
							$newcart .= ','.$item;
						&#125; else &#123;
							$newcart = $item;
						&#125;
					&#125;
				&#125;
				for &#40;$i=1;$i<=$value;$i++&#41; &#123;
					if &#40;$newcart != ''&#41; &#123;
						$newcart .= ','.$id;
					&#125; else &#123;
						$newcart = $id;
					&#125;
				&#125;
			&#125;
		&#125;
	&#125;
	$cart = $newcart;
	break;
&#125;
$_SESSION&#91;'cart'&#93; = $cart;
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	
<html xmlns="http&#58;//www.w3.org/1999/xhtml" xml&#58;lang="en" lang="en">
<head>
	<title>PHP Shopping Cart Demo &#0183; Cart</title>
	<link rel="stylesheet" href="css/styles.css" />
</head>

<body>

<div id="shoppingcart">

<?php
echo writeShoppingCart&#40;&#41;;
?>

</div>

<div id="contents">

Please check quantities...

<?php
echo showCart&#40;&#41;;
?>

</div>

</body>
</html>
όλα δουλεύουν σωστά!

Όταν κάνω σε ένα άλλο αρχείο μου require("basket.php"); τότε μου πετάει σφάλμα

Fatal error: Call to a member function query() on a non-object in functions.inc.php

στην γραμμή 27 δηλαδή εδώ : $result = $db->query($sql);

Κώδικας: Επιλογή όλων

<?php
function writeShoppingCart&#40;&#41; &#123;
	$cart = $_SESSION&#91;'cart'&#93;;
	if &#40;!$cart&#41; &#123;
		return '<p>You have no items in your shopping cart</p>';
	&#125; else &#123;
		// Parse the cart session variable
		$items = explode&#40;',',$cart&#41;;
		$s = &#40;count&#40;$items&#41; > 1&#41; ? 's'&#58;'';
		return '<p>You have <a href="/essentials/general/basket.php">'.count&#40;$items&#41;.' item'.$s.' in your shopping cart</a></p>';
	&#125;
&#125;

function showCart&#40;&#41; &#123;
	global $db;
	$cart = $_SESSION&#91;'cart'&#93;;
	if &#40;$cart&#41; &#123;
		$items = explode&#40;',',$cart&#41;;
		$contents = array&#40;&#41;;
		foreach &#40;$items as $item&#41; &#123;
			$contents&#91;$item&#93; = &#40;isset&#40;$contents&#91;$item&#93;&#41;&#41; ? $contents&#91;$item&#93; + 1 &#58; 1;
		&#125;
		$output&#91;&#93; = '<form action="/essentials/general/basket.php?action=update" method="post" id="cart">';
		$output&#91;&#93; = '<table>';
		foreach &#40;$contents as $id=>$qty&#41; &#123;
			$sql = 'SELECT * FROM prods WHERE id = '.$id;
			$result = $db->query&#40;$sql&#41;;
			$row = $result->fetch&#40;&#41;;
			extract&#40;$row&#41;;
			$output&#91;&#93; = '<tr>';
			$output&#91;&#93; = '<td><a href="/essentials/general/basket.php?action=delete&id='.$id.'" class="r">Remove</a></td>';
			$output&#91;&#93; = '<td>'.$name.' by '.$code.'</td>';
			$output&#91;&#93; = '<td>&pound;'.$price.'</td>';
			$output&#91;&#93; = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';
			$output&#91;&#93; = '<td>&pound;'.&#40;$price * $qty&#41;.'</td>';
			$total += $price * $qty;
			$output&#91;&#93; = '</tr>';
		&#125;
		$output&#91;&#93; = '</table>';
		$output&#91;&#93; = '<p>Grand total&#58; <strong>&pound;'.$total.'</strong></p>';
		$output&#91;&#93; = '<div><button type="submit">Update cart</button></div>';
		$output&#91;&#93; = '</form>';
	&#125; else &#123;
		$output&#91;&#93; = '<p>You shopping cart is empty.</p>';
	&#125;
	return join&#40;'',$output&#41;;
&#125;
?>

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Και δουλεύει και δεν δουλεύει!

Δημοσίευση από Khronos » 22 Ιούλ 2010 11:23

Το λάθος είναι αυτό ακριβώς που σου βγάζει.
Δεν έχει δημιουργηθεί object της κλάσης mysql.class.php αρα πρέπει να το δημιουργήσεις.

$db = new Database(); ή όπως αλλιώς είναι το όνομα της κλάσης.

invader7
Δημοσιεύσεις: 78
Εγγραφή: 24 Ιαν 2009 22:02

Και δουλεύει και δεν δουλεύει!

Δημοσίευση από invader7 » 22 Ιούλ 2010 14:56

ευχαριστώ πάρα πολύ το έλυσα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες