中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> PHP编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· 仅用PHP4 Session实...
仅用PHP4 Session实现的迷你购物篮(一)
作者:不详  来源:不详  发布时间:2006-8-14 11:07:09  发布人:chinazhan

 减小字体 增大字体

    
  翻译:limodou 2000年8月20日
  作者:Evert Smith 翻译:limodou
  
  介绍
    如果你还没有用PHP 实现你自已的购物篮,在读完这篇文章之后你应该可以创建一个了。甚至你可能已
  经有了一个购物篮,我在这里所提供的一些技巧可能会帮助你改善你的系统。
  
    我将给你一些提示,关于如何去做也许才能减少对购物篮表的无限的查询,或减少无限的文本文件填充
  你的文件系统,因为应用程序只会做但不会删除它们。
  
    如果你对这类的题目是个新手,不要害怕。它实际上相当简单和有效,你只需要一个支持php4的主机,
  象notepad或vi之类的html编辑器,你宝贵的几分种,和这个小例子。
  
  
  想法
    在1998年,我有一个在硬件商店工作的朋友要求我为他们编写一个在线商店。需要快速和简单,同时还
  要有在线管理。当我发着39度高烧的时候我变得想当有创建力,所以我用perl写了那个东西,使用minisql
  作为后端。在整个处理中我插入了我所提到的迷你购物篮。
  
    这个迷你购物篮与平常的购物车只有很小的不同,它会在每一页显示你的购物车的东西,不需要在放入
  一件东西后在购物车来回跳转。这就是我写这篇文章的初衷。
  
  
  目标
    人们喜欢控制,那么为什么不给他们些透明度,以便让他们相信拥有了控制?这个迷你购物篮演示了一
  个完美的方法:它提供给人们所必须的信息,并且节省了他们一次点击,接近了在线商店的3击范例。
  
    所以,目标就是在任何时候将这个迷你购物篮显示为你的页面上的一部分,在结尾处提供一个摘要用以
  修改购物篮中的物品,接着在最后发送一个订单。
  
  要求
    你应该知道什么是session。如果不知道,这里有一个快速的纲要。已经有很多文章关于这个话题,你
  可以从中找到所有你需要的代码例子。在你的开始页面打开一个session,使用
  
  <?php
  
  session_start();
  
  ?>
  
    这样将创建一个session名字和一个session id。你现在既可以使用缺省的通过基于cookie的设置session
  的方式,通过一个表单来传递session id,或把它作为一个变量附在你的链接上(get方法)的方法。不要忘
  记在最后释放session。:)
  
    你的商品应该有一个名字,价格和唯一标识,以便能用在这个例子中,如果不这样,你可能需要做一点
  修改。这里我使用mysql作为后端以便建立页面及其它,为了让购物能工作这不是必须的。:)
  
    你应该了解数组。现在如果有人有时间利用我的代码并且创建一个它的类,我理所当然地要感激得到它。
  
  定义
    为了简化这个例子,我使用了四个独立的数组和一些额外的变量。代码可以被优化。这样可以很容易地
  显示想法和阅读代码。可以使用类更好的完成,但是我不能十分肯定是否能够把对象保存到session 里。有
  人想对此发表评论吗?
  
    我们还需要一个项目计数器。当然可以使用count() 命令来实现,我只不过认为它足够好,以便总能知
  道有多少的项目,并且它也为循环提供了一个好的计数器。
  
  工作
    让我们假设在你的HTML页中有一个商品列表
  
  ID Name Price
  1 Mouse 25.00 add
  2 Key 100.00 add
  3 Car 5000.00 add
  4 Game 25.00 add
  
  向你的页面增加链接
  
    上面的'add'字段应该是一个链接,用来将商品放到迷你购物篮中。使用$PHP_SELF将这个链接指向它自
  已。然后向它增加商品信息。这里是商品1的例子。
  
  <A HREF="<?echo $PHP_SELF;?>?id=1&price=25&basket=Mouse">add</A>
  
    商品的名称能够包含空格,所以将它放在链接的最后。Get方法好象对这个很挑剔。
  
  准备迷你购物篮
  
    为了代码重用,让我们创建一个额外的文件minibasket.inc。我使用.inc扩展名来标识我的包括文件。
  使用这个外部文件的原因是,尽管你将使用session变量来传递给购物篮,代码仍然需要有效。这个文件将
  包含显示迷你购物篮的代码,也包话增加项目的函数。实现它的最好的地方是将 <?php include ("minibasket.inc"); ?> 命令放在你需要的地方。
  
  minibasket.inc的逻辑
  
    花些时间考虑一下这个。迷你购物篮应该是个什么样子,它需要些什么特性?这里显示的迷你购物篮应
  该看上去象这样:
  
  # Name Price
  1 Mouse 25.00
  3 Game 75.00
  Total 100.00
  
    你可以很容易的通过使用一个外部样式表格式化这个输出。可是,它不应该太大。这个迷你购物篮是一
  个信息,然而它不应该成为你所显示页面的焦点。
  
    这个文件的逻辑非常简单。
  
  检查是否需要增加一个新的项目。
  如果true,增加项目
  在加入中,它要检查复重的记录,通过更新数量和价格来更新存在的记录。
  片段1。检查将要增加的新的项目
  
    这是一个正常的IF语句,用于检查$basket变量的值。
  
  <?php
  
  if ($basket!=""){
  //向篮子中加入项目
  }
  
  ?>
  
  片段2。在浏览器中显示篮子
  
  <?php
  
  if ($ses_basket_items>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];
  echo "$amount $name $price";
  echo "<BR>\n";
  }
  } else {
  // 在篮子中没有商品
  // 设置项目计数为0,且清除所有的变量
  // 这是一个清除处理。它防止人们得到旧的数组
  $ses_basket_items=0;
  unset($ses_basket_name);
  unset($ses_basket_amount);
  unset($ses_basket_price);
  unset($ses_basket_id);
  }
  
  ?>
  
    这段代码不会产生任何结果。项目还没有被填充,篮子总是空的,所以篮子不会被显示。那么让我们向
  这个篮子中加些项目吧。
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .