怎么,大家觉得分少吗?可以再加呀!我是一个初学者,帮一下忙吧,我修改好了大部分,就差删除不会了<?
session_start();
?>
<?
// 记住在代码片段1中, 决定是不是要增加?
// 让我们在这里重复它if ($basket!="")
{
// 在这里,项目将要加到篮中。让我们检查一下是否存在一个注册过的篮子
if (session_is_registered("ses_basket_items"))
{
// 存在一个注册过的篮子,将代码片段4放在这里。
// 它增加项目到注册过的篮子中,检查重复记录,更新它们或在数组的最后增加项目
$basket_position_counter = 0; //篮子中的位置
$double = 0; //双重入口标志设为NO
if ($ses_basket_items > 0)
{
// 检查是否篮子包含的项目中有双重入口
foreach ($ses_basket_name as $basket_item)
{
// 遍历数组所包含的名字,检查是否与从href所传来的相配匹
if ($basket_item==$basket)
{
// 如果在篮子中已经有了一个项目,将flag设为1
$double=1;
print ("<script>alert('这个项目已经存在.');</script>");
// 记住项目的位置,将进行更新
$basket_position=$basket_position_counter;
}
$basket_position_counter++; //增加篮子中的实际位置
}
} // 更新篮子
if ($double==1)
{
// 如果项目在你的篮子中已经存在则更新在$basket_position处理的数量和位置
$oldamount=$ses_basket_amount[$basket_position];
//$ses_basket_amount[$basket_position]++;
$amount=$ses_basket_amount[$basket_position];
$oldprice=$ses_basket_price[$basket_position];
//更新价格
$newprice=($oldprice/$oldamount)*$amount;
$ses_basket_price[$basket_position]=$newprice;
}
else
{
// 如果它不在你的篮子中,则在数组末尾增加新的项目
$ses_basket_name[]=$basket;
$ses_basket_amount[]=1;
$ses_basket_price[]=$price;
$ses_basket_id[]=$id;
$ses_basket_items++;
} }
else
{
// 不存在注册过的篮子,将代码片段3放在这里。它创建一个新的篮子,并且
// 通过session注册它。
$ses_basket_items=1; // 填充4个数组的第0个位置,使用从href链接传过来的值
// 链接是在‘给你的页面增加链接’部分所讲的
$ses_basket_name[0] = $basket;
$ses_basket_amount[0]= 1;
$ses_basket_price[0] = $price;
$ses_basket_id[0] = $id; // 在session中注册新的篮子
session_register("ses_basket_items");
session_register("ses_basket_name");
session_register("ses_basket_amount");
session_register("ses_basket_price");
session_register("ses_basket_id");
}
}
// 剩下的都是代码片段2。如果篮子中有物品时用于显示它们。
// 加到这里。
if ($ses_basket_items > 0)
{
// 如果在篮子中有项目
printf("<table border=1 width=400>");
printf("<form action='gwc.php' method='post'>");
printf("<tr>");
printf("<td>数量</td>");
printf("<td>名称</td>");
printf("<td>价钱</td>");
printf("<td>删除</td>");
printf("</tr>");
$price_count = 0;
for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++)
{
// 遍历篮子,打印出每一行
// 你当然可以用格表来格式化显示
// 需要通过格式化来显示价格的分值。如果没有格式化,则.00是不会显示出来的
$price=sprintf("%01.2f",$ses_basket_price[$basket_counter]);
$amount=$ses_basket_amount[$basket_counter];
$name=$ses_basket_name[$basket_counter];
printf("<tr><td><input type=text name=amount[$basket_counter] value=$ses_basket_amount[$basket_counter] size=4></td><td>$ses_basket_name[$basket_counter]</td><td>$price</td><td><a href=del.php?name=$ses_basket_name[$basket_counter]>册除</a></td></tr>");
$price_count = $price_count + $price;
printf("<input type=hidden name=name[$basket_counter] value=$ses_basket_name[$basket_counter]>");
}
printf("</table>");
printf("<input type='submit' value='更新数量'>");
printf("</form>");
printf("%01.2f",$price_count);
}
else
{
// 在篮子中没有商品
// 设置项目计数为0,且清除所有的变量
// 这是一个清除处理。它防止人们得到旧的数组
$ses_basket_items=0;
unset($ses_basket_name);
unset($ses_basket_amount);
unset($ses_basket_price);
unset($ses_basket_id);
}
?>
<a href="del_cat.php">清空</a>
session_start();
?>
<?
// 记住在代码片段1中, 决定是不是要增加?
// 让我们在这里重复它if ($basket!="")
{
// 在这里,项目将要加到篮中。让我们检查一下是否存在一个注册过的篮子
if (session_is_registered("ses_basket_items"))
{
// 存在一个注册过的篮子,将代码片段4放在这里。
// 它增加项目到注册过的篮子中,检查重复记录,更新它们或在数组的最后增加项目
$basket_position_counter = 0; //篮子中的位置
$double = 0; //双重入口标志设为NO
if ($ses_basket_items > 0)
{
// 检查是否篮子包含的项目中有双重入口
foreach ($ses_basket_name as $basket_item)
{
// 遍历数组所包含的名字,检查是否与从href所传来的相配匹
if ($basket_item==$basket)
{
// 如果在篮子中已经有了一个项目,将flag设为1
$double=1;
print ("<script>alert('这个项目已经存在.');</script>");
// 记住项目的位置,将进行更新
$basket_position=$basket_position_counter;
}
$basket_position_counter++; //增加篮子中的实际位置
}
} // 更新篮子
if ($double==1)
{
// 如果项目在你的篮子中已经存在则更新在$basket_position处理的数量和位置
$oldamount=$ses_basket_amount[$basket_position];
//$ses_basket_amount[$basket_position]++;
$amount=$ses_basket_amount[$basket_position];
$oldprice=$ses_basket_price[$basket_position];
//更新价格
$newprice=($oldprice/$oldamount)*$amount;
$ses_basket_price[$basket_position]=$newprice;
}
else
{
// 如果它不在你的篮子中,则在数组末尾增加新的项目
$ses_basket_name[]=$basket;
$ses_basket_amount[]=1;
$ses_basket_price[]=$price;
$ses_basket_id[]=$id;
$ses_basket_items++;
} }
else
{
// 不存在注册过的篮子,将代码片段3放在这里。它创建一个新的篮子,并且
// 通过session注册它。
$ses_basket_items=1; // 填充4个数组的第0个位置,使用从href链接传过来的值
// 链接是在‘给你的页面增加链接’部分所讲的
$ses_basket_name[0] = $basket;
$ses_basket_amount[0]= 1;
$ses_basket_price[0] = $price;
$ses_basket_id[0] = $id; // 在session中注册新的篮子
session_register("ses_basket_items");
session_register("ses_basket_name");
session_register("ses_basket_amount");
session_register("ses_basket_price");
session_register("ses_basket_id");
}
}
// 剩下的都是代码片段2。如果篮子中有物品时用于显示它们。
// 加到这里。
if ($ses_basket_items > 0)
{
// 如果在篮子中有项目
printf("<table border=1 width=400>");
printf("<form action='gwc.php' method='post'>");
printf("<tr>");
printf("<td>数量</td>");
printf("<td>名称</td>");
printf("<td>价钱</td>");
printf("<td>删除</td>");
printf("</tr>");
$price_count = 0;
for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++)
{
// 遍历篮子,打印出每一行
// 你当然可以用格表来格式化显示
// 需要通过格式化来显示价格的分值。如果没有格式化,则.00是不会显示出来的
$price=sprintf("%01.2f",$ses_basket_price[$basket_counter]);
$amount=$ses_basket_amount[$basket_counter];
$name=$ses_basket_name[$basket_counter];
printf("<tr><td><input type=text name=amount[$basket_counter] value=$ses_basket_amount[$basket_counter] size=4></td><td>$ses_basket_name[$basket_counter]</td><td>$price</td><td><a href=del.php?name=$ses_basket_name[$basket_counter]>册除</a></td></tr>");
$price_count = $price_count + $price;
printf("<input type=hidden name=name[$basket_counter] value=$ses_basket_name[$basket_counter]>");
}
printf("</table>");
printf("<input type='submit' value='更新数量'>");
printf("</form>");
printf("%01.2f",$price_count);
}
else
{
// 在篮子中没有商品
// 设置项目计数为0,且清除所有的变量
// 这是一个清除处理。它防止人们得到旧的数组
$ses_basket_items=0;
unset($ses_basket_name);
unset($ses_basket_amount);
unset($ses_basket_price);
unset($ses_basket_id);
}
?>
<a href="del_cat.php">清空</a>
session_start();
if(!session_is_registered('stationery')) session_register('stationery');//清空
if ($action=="clear")
{
session_unregister('stationery');
?>
<script>
window.close()
</script>
<?
}//删除
if ($action=="delete" && isset($no))
{
$stationery[$no]['id']="null";
}if (isset($book_id))
{
$i=count($stationery);
if($i==0)
{
$stationery[$i]['id']=$book_id;
$stationery[$i]['name']=$book_name;
$stationery[$i]['price']=$price;
}
else
{
for($j=0;$j<$i;$j++)
{
if($stationery[$j]['id']==$book_id)
{
break;
}
else
{
if ($j==($i-1))
{
$stationery[$i]['id']=$book_id; //如没有记录,给数组增添一个元素
$stationery[$i]['name']=$book_name;
$stationery[$i]['price']=$price;
}
}
}
}
reset($stationery);
}
?><body bgcolor="#Efefef">
<table width="98%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#CCCCCC" align="center" height=22>
<td width=30%>编号</td>
<td width=30%>名称</td>
<td width=30%>价格</td>
<td width=10%> </td>
</tr>
<?
for ($a=0;$a<count($stationery);$a++)
{
$t_id=$stationery[$a]['id'];
if ($t_id!="null")
{
$t_name=$stationery[$a]['name'];
$t_price=$stationery[$a]['price'];
?>
<tr align="center" valign="middle" height=22>
<td><?=$t_id?></td>
<td><?=$t_name?></td>
<td><?=$t_price?></td>
<td><a href="<?=$PHP_SELF?>?action=delete&no=<?=$a?>">删除</a></td>
</tr>
<?
}
}
?>
</table><BR><a href="<?=$PHP_SELF?>?action=clear">清空购物篮</a>
对不起,我很笨!
数组:
第一个记录:
$stationery[0]['id']
$stationery[0]['name']
...第二个记录:
$stationery[1]['id']
$stationery[1]['name']
...第三个记录:
$stationery[2]['id']
$stationery[2]['name']
...修改功能:
提取 $stationery[$a],更改数据后再写回$stationery[$a]删除功能:
提取 $stationery[$a],令提取 $stationery[$a]['id'] = ""显示(或保存到数据库)时,检查$stationery[$a]['id']是否为空,如是就跳过(实际在session中还有此记录,但不会有影响)
但!主要还是因为我笨