<?php
switch($_GET["action"])
{
case "add_item":
{
AddItem($_GET["ids"], $_GET["qty"]);
ShowCart();
break;
}
case "update_item":
{
UpdateItem($_GET["ids"], $_GET["qty"]);
ShowCart();
break;
}
case "remove_item":
{
RemoveItem($_GET["ids"], $_GET["id"]);
ShowCart();
break;
}
default:
{
ShowCart();
}
}
function AddItem($itemId, $qty){
$result = mysql_query("SELECT COUNT(*) FROM cart WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");
$row = mysql_fetch_row($result);
$numRows = $row[0];
if($numRows == 0)
{
// This item doesn't exist in the users cart,
// we will add it with an insert query
mysql_query("INSERT INTO cart(cookieId, id, qty) values('" . GetCartId() . "', $itemId, $qty)");
//printf ("Inserted records: %d\n", mysql_affected_rows());
}
else
{
// This item already exists in the users cart,
// we will update it instead
mysql_query("UPDATE cart SET qty = $qty WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");
}
}
function UpdateItem($itemId, $qty)
{
mysql_query("UPDATE cart SET qty = $qty WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");
//printf ("Updated records: %d\n", mysql_affected_rows());
}
function RemoveItem($itemId)
{
mysql_query("DELETE FROM cart WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");
}
echo $ids;
?>
<?php
function ShowCart()
{
$result = mysql_query("SELECT
cart.id cart_id,
cart.id cart_id,
cart.cartId cartId,
cart.cookieId cookie_Id,
cart.qty qt_y,
cdkb.id cdkb_id,
cdkb.name name,
cdkb.image image,
cdkb.price price,
dkb.id dkb_id,
dkb.name name1,
dkb.image image1,
dkb.price price2,
dbl.product_id product_id,
dbl.price price3,
dbl.variety variety,
dbl.description description
FROM
cart
LEFT OUTER JOIN cdkb
ON cart.id = cdkb.id
LEFT OUTER JOIN dkb
ON cart.id = dkb.id
LEFT OUTER JOIN dbl
ON dbl.id = dkb.id
WHERE
cart.cookieId ='" . GetCartId() . "' ' ORDER BY cdkb.name AND dkb.name ASC");?>
<div id="cart">
<div id="group">
<div id="quantity">Qty</div>
<div id="cartpic">Pic</div>
<div id="product">Product</div>
<div id="cartprice">Price</div>
<div id="remove">Remove</div>
</div>
<?php
$totalCost=0;
foreach($result as $row)
{
if($row['ckb_id']){
// Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price"]);
?>
<div id="cart1">
<select name="<?php echo $row["cdkb_id"];?>" onChange="UpdateQty(this)">
<?php print($row["cdkb_id"]);?>
<?php
for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i)
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name"]; ?></p></div>
<div id="cart4"><p>
$<?php echo number_format($row["price"], 2, ".", ","); ?></p></div>
<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d®ister=%s">Remove</a>', $_GET['id'], $row['cdkb_id'], $_GET['register']);
?></p></div>
<hr size="1" color="red" >
<script language="JavaScript">
function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;
document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}
</script>
<?php
}
?>
<?php
else {
?>
<?php // Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price2"]);
?>
<div id="cart1">
<select name="<?php echo $row["dkb_id"];?>" onChange="UpdateQty(this)">
<?php print($row["dkb_id"]);?>
<?php
for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i)
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image2"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name2"]; ?></p></div>
<?php foreach ($row['dkb_id'] as $variety) {?>
<div id="cart4">
<?php echo"<p>".$variety['variety']. " ~ " . $variety['price3'] . "</p>" ?>
<p>$<?php echo number_format($row["price3"], 2, ".", ","); ?></p></div>
<?php } ?>
<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d®ister=%s">Remove</a>', $_GET['id'], $row['dkb_id'], $_GET['register']);
?></p></div>
<hr size="1" color="red" >
<script language="JavaScript">
function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;
document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}
</script>
<font face="verdana" size="2" color="black" style="clear:right;">
<b>Total: $<?php echo number_format($totalCost, 2, ".", ","); ?></b></font></td>
<?php } ?>
<?php } ?>
<div id="shopping">
<a href=<?php echo "exa2.php?id=".intval($id). '®ister='. $_GET['register']. ""?>> Keep Shopping</a></div>
<?php /*?><tr>
<td colspan="4">
<font face="verdana" size="1" color="black">
<a href=<?php echo "cart.php?开发者_运维百科id=".intval($id). '®ister='. $_GET['register']. ""?>>Your Shopping Cart</a></font></td>
</tr><?php */?>
</tr>
</table>
</table>
Hi For those who has commented on Help with a unexpected T_ELSE this is the subsequent thread I couldn't post int he other account because accessibility issues.
In the code above below the query there will be an if and else statement sequence that is causing a parse errror: syntax error, as it fallows Parse error: syntax error, unexpected T_ELSE. Look at the if and else statment design and what's possiblly causing this error.
if {
for (blabla) {
if {
}// end of if statement inside the for loop
} //end of for loop.
} end of if statement
else{ // line 379
}// end of else statement
What I believe is causing the T_ELSE syntax error above as I said in the last post is the if statement inside the for loop. Php believes that the else statement is working together with the if statement inside the for loop and what I want is the if statement outside the for loop work together with the else statement. The error looks like this:
PS everything that possibly causing the parse error is below the query. thanks.
The INTENDED DISPLAY in between the if and else would look like
foreach($result as $row)
{
if (table cdkb) {
[1]qyt image name price remove
1 --- marina $18.90 remove?
}end of if statement
Else table dkb {
1]qyt Image Name Price Remove
1 --- marina Small Tray $18.90 remove?
Medium Tray $30.24
Large Tray $35.90
} // end of else statement
}//end of while loop
This is the array structure behind the INTENDED display!
<?php
$result = array(
'0' => array('cdkb_id' => 'id 1',
'image' => 'img 1',
'name' => 'name 1',
'price' => 'price 1'
),
'1' => array('image1' => 'img 2',
'name1' => 'name 2',
'dkb_id' => array('0' => array('variety' => 'variety 2-1',
'price3' => 'price 2-1'
),
'1' => array('variety' => 'variety 2-2',
'price3' => 'price 2-2'
),
'2' => array('variety' => 'variety 2-3',
'price3' => 'price 2-3'
)
)
),
'2' => array('cdkb_id' => 'id 3',
'image' => 'img 3',
'name' => 'name 3',
'price' => 'price 3'
),
'3' => array('image1' => 'img 4',
'name1' => 'name 4',
'dkb_id' => array('0' => array('variety' => 'variety 4-1',
'price3' => 'price 4-1'
),
'1' => array('variety' => 'variety 4-2',
'price3' => 'price 4-2'
),
'2' => array('variety' => 'variety 4-3',
'price3' => 'price 4-3'
)
The only thing on the way is the T_ELSE because there is an if in between the if and else statement inside the for loop....
Thank.
Notice this bit:
<?php
}
?>
<?php
else {
?>
Have you tried NOT splitting the ending of the if and the else into two different code blocks? I strongly doubt the parser will maintain that kind of context: the first block works to terminate the if block, and since it doesn't read an else, it assumes you're done with it. Thus, the else you have in the next block is disconnected from your if.
The idea that the else would somehow connect to the innermost if is entirely wrong. The grammar would be far too broken if that were possible.
Your code definitely needs a major cleanup. Indentation isn't something you only hear about at a dentist's office. It's used to give your code visual structure and make it much easier to see at a glance where code belongs in a series of nest brackets. You essentially have NO indentation whatsoever, except for, oddly enough, the mysql query, which is beautifully formatted.
Since PHP's spitting out an 'unexpected else', that means you've got too many or too few brackets somewhere, or have something like this:
if ($condition) {
} else {
} else {
}
Clean up your code, use proper formatting, and I'd suggest using an editor, such as VI, which can help you find missing/extra brackets (the '%' command in VI, to bounce between matched brackets).
@Mark Byers below there is a simpler version of the code above and it has three if statement two before the else one inside a for each loop and another inside the for loop I want the one at the foreach loop to pair up with the else statement.
<?php
$totalCost=0;
foreach($result as $row)
{
if($row['ckb_id']){ if statement that will match the else statement..
// Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price"]);
?>
<div id="cart1">
<select name="<?php echo $row["cdkb_id"];?>" onChange="UpdateQty(this)">
<?php print($row["cdkb_id"]);?>
<?php
for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i) // if statement inside the for loop
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name"]; ?></p></div>
<div id="cart4"><p>
$<?php echo number_format($row["price"], 2, ".", ","); ?></p></div>
<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d®ister=%s">Remove</a>', $_GET['id'], $row['cdkb_id'], $_GET['register']);
?></p></div>
<hr size="1" color="red" >
<script language="JavaScript">
function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;
document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}
</script>
<?php
} // end of if statement
?>
<?php
else { // beginning of else statement
?>
<?php // Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price2"]);
?>
<div id="cart1">
<select name="<?php echo $row["dkb_id"];?>" onChange="UpdateQty(this)">
<?php print($row["dkb_id"]);?>
<?php
for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i)
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image2"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name2"]; ?></p></div>
<?php foreach ($row['dkb_id'] as $variety) {?>
<div id="cart4">
<?php echo"<p>".$variety['variety']. " ~ " . $variety['price3'] . "</p>" ?>
<p>$<?php echo number_format($row["price3"], 2, ".", ","); ?></p></div>
<?php } ?>
<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d®ister=%s">Remove</a>', $_GET['id'], $row['dkb_id'], $_GET['register']);
?></p></div>
<hr size="1" color="red" >
<script language="JavaScript">
function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;
document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}
</script>
<font face="verdana" size="2" color="black" style="clear:right;">
<b>Total: $<?php echo number_format($totalCost, 2, ".", ","); ?></b></font></td>
<?php } ?>
<?php } ?>
<div id="shopping">
<a href=<?php echo "exa2.php?id=".intval($id). '®ister='. $_GET['register']. ""?>> Keep Shopping</a></div>
<?php /*?><tr>
<td colspan="4">
<font face="verdana" size="1" color="black">
<a href=<?php echo "cart.php?id=".intval($id). '®ister='. $_GET['register']. ""?>>Your Shopping Cart</a></font></td>
</tr><?php */?>
</tr>
</table>
</table>
精彩评论