Jump to content

Code syntax,can help?


cty

Recommended Posts

1)Error display in cart.php page:

PHP Notice: Undefined offset: 0 in C:\test\kelly.php on line 16 PHP Notice: Undefined variable: totalCost in C:\test\kelly.php on line 61

2)Error show when i try to remove item form cart:

PHP Notice: Undefined variable: db in C:\test\kelly.php on line 43 PHP Fatal error: Call to a member function query() on a non-object in C:\test\kelly.php on line 43


--------------------------------------------------------
//This is  "db.php"

<?php

function GetCartId()
{
// This function will generate an encrypted string and
// will set it as a cookie using set_cookie. This will
// also be used as the cookieId field in the cart table

if(isset($_COOKIE["cartId"]))
{
return $_COOKIE["cartId"];
}
else
{
// There is no cookie set. We will set the cookie
// and return the value of the users session ID

session_start();
setcookie("cartId", session_id(), time() + ((3600 * 24) * 30));
return session_id();
}
}

?>
-------------------------------------------------------------------
//This is "product.php"

<?php



include("db.php");

$db=new mysqli('localhost','root','','test');
$db->select_db('test');



$query="select * from items order by itemName asc";
$result = $db->query($query);
?>

<?php
while($row =$result->fetch_assoc())
{
?>

<table border=2>
<tr>
<td width="30%" height="25">
<font face="verdana" size="2" color="black">
<?php echo $row["itemName"]; ?>
</font>
</td>
<td width="10%" height="25">
<font face="verdana" size="2" color="black">
<?php echo $row["itemPrice"]; ?>
</font>
</td>
<td width="50%" height="25">
<font face="verdana" size="1" color="black">
<?php echo $row["itemDesc"]; ?>
</font>
</td>


<td width="10%" height="25">
<font face="verdana" size="2" color="black">
<a href="cart.php?action=add_item&id=<?php echo $row["itemId"]; ?>&qty=1">Add Item</a>
</font>
</td>
</tr>
<br />


<?php }?>

<tr>
<td width="100%" colspan="4">
<hr size="1" color="red" NOSHADE>
</td>
</tr>



<tr>
<td width="100%" colspan="4">
<font face="verdana" size="1" color="black">
<a href="cart.php"> View Your Shopping Cart &gt;&gt;</a>
</font>
</td>
</tr>
</table>
</body>
</html>


---------------------------------------------------------
//This is "cart.php"

<?php
include("kelly.php");
include("db.php");
?>


<?php

switch($_GET["action"])
{
case "add_item":
{
AddItem($_GET["id"], $_GET["qty"]);
ShowCart();
break;
}
case "update_item":
{
UpdateItem($_GET["id"], $_GET["qty"]);
ShowCart();
break;
}
case "remove_item":
{
RemoveItem($_GET["id"]);
ShowCart();
break;
}
default:
{
ShowCart();
}
}

?>


-----------------------------------------------

//This is "kelly.php"


<?php


function AddItem($itemId, $qty){


$db=new mysqli('localhost','root','','test');
$db->select_db('test');

$query="select count(*) from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId";
$result=$db->query($query);


$row =$result->fetch_assoc();

$numRows = $row[0];
if($numRows == 0)

{
// This item doesn't exist in the users cart,
// we will add it with an insert query

$query="insert into cart(cookieId, itemId, qty) values('" . GetCartId() . "', $itemId, $qty)";
$result=$db->query($query);
}
else
{
// This item already exists in the users cart,
// we will update it instead

UpdateItem($itemId, $qty);
}
}


function UpdateItem($itemId, $qty){
$query="update cart set qty = $qty where cookieId = '" . GetCartId() . "' and itemId = $itemId";
$result=$db->query($query);
}

function RemoveItem($itemId){
$query="delete from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId";
$result=$db->query($query);
}





function ShowCart(){

$db=new mysqli('localhost','root','','test');
$db->select_db('test');


$query="select * from cart inner join items on cart.itemId = items.itemId where cart.cookieId = '" . GetCartId() . "' order by items.itemName asc";
$result=$db->query($query);
while($row = $result->fetch_assoc())
{
// Increment the total cost of all items
$totalCost += ($row["qty"] * $row["itemPrice"]);

?>




<td width="55%" height="25">
<font face="verdana" size="1" color="black">
<?php echo $row["itemName"]; ?>
</font>
</td>
<td width="20%" height="25">
<font face="verdana" size="1" color="black">
$<?php echo number_format($row["itemPrice"], 2, ".", ","); ?>

</font>
</td>
<td width="10%" height="25">
<font face="verdana" size="1" color="black">
<a href="cart.php?action=remove_item&id=<?php echo $row["itemId"]; ?>">Remove</a>
</font>
</td>
</tr>
<br />

<?php } ?>

<tr>
<td width="100%" colspan="4">
<hr size="1" color="red" NOSHADE>
</td>
</tr>
<tr>
<td width="70%" colspan="2">
<font face="verdana" size="1" color="black">
<a href="products.php">&lt;&lt; Keep Shopping</a>
</font>
</td>
<td width="30%" colspan="2">
<font face="verdana" size="2" color="black">
<b>Total: $<?php echo number_format($totalCost, 2, ".", ","); ?></b>
</font>
</td>
</tr>
<?php } ?>



--------------------------------------------------end//
Link to comment
Share on other sites

Notices don't affect the operation of your code...it is PHP's way of telling you that there is a minor mistake in your code...For example, the first Notice you have listed states that on this line:

[code]$numRows = $row[0];[/code]

There is no $row[0]...index "0" is undefined.

You can have them stop displaying by setting your error reporting level lower, or turning off errors
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.